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.1
和http://192.168.1.4:8080
Jenkins安装GitLab-Hook插件
登录后,在Jenkins页面中安装GitLab-Hook
插件
GitLab新建项目仓库
创建名为kgcapp的项目仓库
在GitLab中添加本机的公钥值
在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中
Jenkins新建任务
新建任务名为kgcapp
与GitLab中的名称对应,在生产环境中不易被混淆
源码管理
复制GitLab项目的SSH地址
为了访问GitLab添加凭证(红色报错正常,添加正确的凭证就好了)
创建凭证,其中的key是GitLab在本地生成的私钥,可以通过私钥与GitLab上的公钥来连接Jenkins和GitLab
红色报错消失了
构建触发器
选择当gitlab上有新的代码更新时,进行构建
然后进入高级选项
生成一串token值,用来对GitLab中的项目代码进行操作,所以这个值要放到GitLab中,用于验证允许Jenkins来拿取代码,稍后会做
Build
当拿取到代码后,使用mvn clean deploy
进行构建代码
Post Steps
构建命令结束后,继续执行一部分shell命令
构建后操作
没有做关于邮件的操作,这步可以不做
设置收件人邮箱地址,且发送邮件时,携带log文件
设置邮件触发器,当构建成功/失败/不稳定时,都通知收件人和管理员
GitLab
192.168.1.1中设置Jenkins中的token值,用来触发Jenkins构建
GitLab默认情况下不允许通过本地网络触发构建,以下这步是为了设置允许本地网络构建,如果不设置允许会在添加token时报错
保存
设置允许之后,就可以设置GitLab项目与Jenkins的构建触发器连接了
进入项目中选择设置
图中的URL是在Jenkins中的项目路径,这个路径在构建触发器的那里可以看到,复制即可,token则是刚才在Jenkins的管理界面中生成的token值,也是同样的位置
add成功后显示下图
验证
这个时候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的管理员,同时成功之后也会给你发邮件