GitLab:192.168.1.1(已安装)

安装GitLab,请参考这里

Jenkins:192.168.1.4(已安装)

安装Jenkins,请参考这里

启动GitLab和Jenkins

192.168.1.1

gitlab-ctl start

192.168.1.4

systemctl start jenkins

登录两个web页面

http://192.168.1.1http://192.168.1.4:8080

Jenkins安装GitLab-Hook插件

登录后,在Jenkins页面中安装GitLab-Hook插件

install_gitlab_hook

GitLab新建项目仓库

admin_create_project

创建名为kgcapp的项目仓库

create_name_kgcapp

在GitLab中添加本机的公钥值

image-20200311131803965

在GitLab(1.1)本地的命令行中生成密钥对

[root@gitlab ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:N1WUQ0i1zfZ9Z5dA68c8aSzrn3EnCmkT8fSw0cisF98 root@gitlab
The key's randomart image is:
+---[RSA 2048]----+
|           ..*=. |
|           oo+++ |
|          . Xoo.+|
|           *.B=o=|
|        S = +ooXE|
|         . =  =.=|
|          =  ...o|
|         . o.. .=|
|            ...o |
+----[SHA256]-----+
[root@gitlab ~]# cat .ssh/id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCuGX4w7NPm8FQ7OBJM7yJszkY1g7leMyfRiYieCJeGhXn
Klzch1b0eqGCfTBulRyUnNwEAC+CQDHoifnjMS4yyrV7oyUi0ezET6h1KZlvsGqnqrncyswFcfNrjxU8tNt
XLtA8Vto9dhii3XU8JdEK42SGLOgsBAJvWsMFJphA4p0aRSG12ACxl+PxrYlKbOezEie5DtMkCKAEXlaUC2
dgsYYsP8eIJcn4ZOnU9gAjqPhkiYDqiAUoL3A9AuBXCY78/rdd1nPDqJh4aBCMUouE/CyGrkBCbX0Qapxwr
e/i9IdubdmXaH/j5m9CKVUuNeKKaJ6sflt6BPDwPAWHlQWPJ root@gitlab

将公钥值复制到GitLab中

image-20200311143448379

Jenkins新建任务

新建任务名为kgcapp

与GitLab中的名称对应,在生产环境中不易被混淆

create_kgcapp_item

源码管理

复制GitLab项目的SSH地址

copy_kgcapp_sshurl

为了访问GitLab添加凭证(红色报错正常,添加正确的凭证就好了)

yuanma_manager

创建凭证,其中的key是GitLab在本地生成的私钥,可以通过私钥与GitLab上的公钥来连接Jenkins和GitLab

create_con_gitlab

红色报错消失了

choose_pingzheng_gitlab

构建触发器

选择当gitlab上有新的代码更新时,进行构建

然后进入高级选项

new_daima_build

生成一串token值,用来对GitLab中的项目代码进行操作,所以这个值要放到GitLab中,用于验证允许Jenkins来拿取代码,稍后会做

sheng_token

Build

当拿取到代码后,使用mvn clean deploy进行构建代码

jenkins_maven_clean_d

Post Steps

构建命令结束后,继续执行一部分shell命令

build_post_steps

构建后操作

没有做关于邮件的操作,这步可以不做

build_after_cao

设置收件人邮箱地址,且发送邮件时,携带log文件

set_project_list

设置邮件触发器,当构建成功/失败/不稳定时,都通知收件人和管理员

set_tiggers_jenkins

GitLab

192.168.1.1中设置Jenkins中的token值,用来触发Jenkins构建

GitLab默认情况下不允许通过本地网络触发构建,以下这步是为了设置允许本地网络构建,如果不设置允许会在添加token时报错

admin_settings_integrations

outbound_requests

allow_webhooks

保存

设置允许之后,就可以设置GitLab项目与Jenkins的构建触发器连接了

进入项目中选择设置

cd_reops_settings

图中的URL是在Jenkins中的项目路径,这个路径在构建触发器的那里可以看到,复制即可,token则是刚才在Jenkins的管理界面中生成的token值,也是同样的位置

set_token_jenkins

add成功后显示下图

add_webhook_kgcapp

验证

这个时候GitLab的项目中还是空的,拿一个测试项目上传到GitLab即可,如果要自己生成测试项目,请参考此处

192.168.1.1

拖入项目包

tar zxf kgcweb.tar.gz
cd kgcweb
ls
pom.xml  src  # 可以看到这两个文件即可
git init
git add .
git config --global user.email "mupeifeiyi@gmail.com"
git config --global user.name "feiyi"
git commit -m "kgcapp"
git remote add origin git@192.168.1.1:root/kgcapp.git
git push -u origin master

当最后一步执行之后,Jenkins的任务会触发构建,并自动运行

然后就可以在Jenkins的web页面中的项目中查看终端输出,执行者是GitLab的管理员,同时成功之后也会给你发邮件

remote_gitlab_console_output

评论




正在载入...
PoweredHexo
HostedAliyun
DNSAliyun
ThemeVolantis
UV
PV
BY-NC-SA 4.0