持續(xù)集成GitLab+Jenkins

1 環(huán)境準(zhǔn)備

No 主機(jī)名 域名 作用 IP 安裝
1 code code.local.com 代碼版本管理 192.168.8.181 參考
2 jenkins jenkins.local.com 代碼編譯部署 192.168.8.183 參考

大致的目標(biāo)如下:

① 開(kāi)發(fā)人員提交代碼到gitlab

② gitlab鉤子觸發(fā)jenkins執(zhí)行構(gòu)建,下載最新版本的代碼

2 GitLab 準(zhǔn)備

2.1 去掉創(chuàng)建賬戶的功能

點(diǎn)擊設(shè)置 把Sign-up enabled的鉤去掉,就可以去掉創(chuàng)建賬戶的功能

保存即可

2.2 創(chuàng)建組,創(chuàng)建項(xiàng)目

進(jìn)去管理區(qū)域,點(diǎn)擊New group

點(diǎn)擊[創(chuàng)建群組]即可,如下圖所示:

接下來(lái),創(chuàng)建一個(gè)項(xiàng)目,并選擇web組

點(diǎn)擊[新建項(xiàng)目]即可,如下圖所示:

接下來(lái),創(chuàng)建一個(gè)用戶

點(diǎn)擊[new user ]即可,如下圖所示:

定義初始密碼

點(diǎn)擊[save changes]即可

分配user1 給 web-demo

接下來(lái)在客戶端,使用IDEA IDE 克隆項(xiàng)目:

使用上面創(chuàng)建的user1/1234qwer,登錄


注意事項(xiàng):新建項(xiàng)目往往還沒(méi)有master分支,需要確認(rèn);另外如果權(quán)限是developer也要和分支匹配才行。
代碼樣例:https://gitee.com/actual-combat-study/web-demo.git

3 配置Jenkins

安裝需要的Gitlab插件

點(diǎn)擊[install without restart]即可,等待安裝完畢重新啟動(dòng)Jenkins。

4 Jenkins主動(dòng)拉取GitLab代碼

4.1 創(chuàng)建一個(gè)新任務(wù)

點(diǎn)擊創(chuàng)建一個(gè)新任務(wù),輸入任務(wù)名字,選擇自由風(fēng)格,點(diǎn)擊確定既可

4.2 源碼Git拉取編譯

在源碼管理添加源碼路徑,點(diǎn)擊Add,添加認(rèn)證,這里是git

截至到此暫停一下,插入以下小片段
如果jenkins服務(wù)器還沒(méi)有安裝git,可以在這塊兒追加一下

$ yum install git

4.3 創(chuàng)建ssh key

檢查jenkins服務(wù)器ssh key,并創(chuàng)建ssh

[root@jenkins ~]# useradd www
[root@jenkins ~]# cd
[root@jenkins ~]# passwd www
Changing password for user www.
New password:
BAD PASSWORD: The password fails the dictionary check - it is too simplistic/systematic
Retype new password:
passwd: all authentication tokens updated successfully.
[root@jenkins ~]# su www
[www@jenkins root]$ ssh-keygen -t rsa -C "user1@local.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/home/www/.ssh/id_rsa):
/home/www/.ssh/id_rsa already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/www/.ssh/id_rsa.
Your public key has been saved in /home/www/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:gklNqLH06nOLJ09t9x711JSOIimIFT9BqwGqOBbixvE user1@local.com
The key's randomart image is:
+---[RSA 2048]----+
|   . ooo         |
|  + ooo o       .|
|.= =.o.+       ..|
|* *.+o+ . .   oo |
|+= Eoo..So ......|
|o..  . .. ...o   |
| .  . o . .   .  |
|  +oo. . . .     |
|  .*o.   .o      |
+----[SHA256]-----+
[www@jenkins .ssh]$ cat id_rsa
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,9792E02DE2571803471444D389184C1C

Q3zj5PixuyBUCZc3ZZ/3zdH+0ZPpq+SO+uVx3aWsKzLeQ+IqyTI+m6XCfWQjyElf
DNtO6HDx2d6hmrqDfA6qGvXSCOrIh3teoW2ye0NkOccxYhmevOpdRNsOv7YgI/N5
OAPoSM0pzTLEgyY6S6fBMT/J6YLVNQhiFf2hHk+43degnYMfUhMlylxwnt2Cec7h
Oxvq0wJj5Ia/O4VJruiUVYOzRj+s7ezhMM3p9lXUIE/RLEv7lt9P/1mtKz94MS3d
nTBfigR6lyNDcweTycpUAlOw7A3guCiABFZOPJ4wTKnar3gi/6cfXCUvkVQCYg0K
/EXEsI1auIg2Megkck/7mRtfqEwwI/xylIyu8AIPeHX+AzhsAjL11A+4VersbvCm
Zpk0/BEcQcRXKRzMpfM3L7xyfTHhtPTUauUgM2+1VwbS43vUWjKTlXtxTiVVLi2i
Ctco0Sozz7wJZ3GrsOuwV4QoDGy1sxMyw/OwOREl+3h9RblUgDQP4lVkih0WV5el
LqxBaGGWVv7luCyrur1xXb0P/SABxb+8CBWB/odTv723hlg0cosa+ShLBETE/yRK
wpuqXdTCEoko3OnhwHIspakrAfkINhBztWxPLzkZUvJ2Rx4J315Ggr/3freVxfne
yh+wJDltdu7zvBiJRFINfDKNMsaCWdTkIOjAMjDU/Bnm6M73ENhxqhQk18NxXH39
psRczallYd3FgXn7tM4sc3bcsy95x6flK1LMG5bcq8gLvyi3bvajIQrLBsBRp+8Z
v6/e7y5EJGEqDhNfALopBFZxsp8O7uIOkqf9RC5I+Hu6BH83BjvINScPfkCZBwmU
d06jNksUo48Z3AQESM8HNHNUD7pMGwDgbjgF4LXLvE6VAnnEouEWnuqfg+JwzoMQ
cAQIqOmFZwo9dKXxnrXQlgIA+4cYh8GVqSyAN/u20K16pDqxuQlalVgofuBveIb+
c9D2Z5dVzMfrays9f1AhYOnkrboCwH4QSnWSCVI9LU1+dV4u8B6SILh84xlXzi4k
OYRHeG6cC6ZVfoo+2SuN6P15Wpl49ojvkdprYBb333a1GrVlH6kT39lhuH4SITgq
OB5x1BkTWmfTgKSI7+IMWS0hTKLTGsrO00ZXd95Ejg8W5CX3jNvMEn0sizK3VhYF
IZW0Irqd/XW7UIBkpJF7cFy1Vx5q2BT3Dlm2jLYlYwms6fxftAyigMlgN+FQPJA1
4G2g1o5tkBlbM3dSw2pmx6uzSzDKPVHlseCJtEVKlYAMPCkoPWyeufTtXQNBB444
En2Wp920XNOH2IwvZJ4Hr1DawNAQLQzo8CGe+lZoP/E2mq2wW8WYvWwsg1dgR5KY
S3tSdy2rDosxbv+DX5lhpS3WHFFLpuka55LNURF6UoM6FZS14UAEfA2l1kwk5ls2
PgVNMvAqL0fQb3rhI6vYvYxlN8bJ2Qk31WRaICjU5XvOoMGsodwHO1vRJ0G5aB8s
+C2AUPJxQObm6zSu6XFdCpcyRu99DM/biU+yn8B/eoTjX5kIVYz8G5xFcKTofiou
/ocSmK5L2+wdGoCfIhQGR2Atuh/CJzXN67L61BWBYUl6ppM6pnb3KyRSu+RRwMDl
-----END RSA PRIVATE KEY-----
[www@jenkins .ssh]$ cat id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDPiPMUahJrgMcvJStly2IKuC+NswUnOiMZDkLVhh15gb3W0k3hZooPcmdTnIDfaWfye8CrPXdiJLVmBKhXj8RkjJtjc6ZWMQFg9lEjRAG9PcY4C/evg8Z8gPRn0187DdWnFKg9nZTxSIpJxp9cLTjV/zQ4QpmXuEoC2pMhTp2+sazB5Grcun0xj1I/aPd5iJAq6nvkQR+13OwgxcqFkuEW0fuz447PVt2lOGF9s9SawXQcO9qo+IaNiEQ/cU+bpqW7MWmqevklvDoWIgKzgUeOvGiV6j5EtS9n5PYt51Qrqgx6RML6gJvi9dgUqGOb87605WQqcqdLB0VMy2RYyBTp user1@local.com

4.4 GitLab代碼倉(cāng)庫(kù)添加公鑰

在GitLab代碼倉(cāng)庫(kù),添加4.3 產(chǎn)生的公鑰


注意:這里公鑰和接下來(lái)的私鑰要進(jìn)行匹配

4.5 Jenkins添加憑據(jù)

緊接4.2繼續(xù)把4.3的私鑰制作成編譯代碼的憑據(jù)

這里如果可以找到 Finished:SUCCESS

至此Jenkins拉取GitLab倉(cāng)庫(kù)代碼成功搭建。

5 GitLab代碼變更自動(dòng)激活Jenkins編譯

5.1 Jenkins中任務(wù)的設(shè)置

進(jìn)入Job的新增或者編輯頁(yè)面,找到 構(gòu)建觸發(fā)器 選項(xiàng),選中 Build when a change is pushed to GitLab
其他選項(xiàng)可以默認(rèn)不改

拷貝:http://jenkins.local.com:8080/project/auto-deploy
Secret token:61dc89deb8bbb55dc6917958957754b7

5.2 GitLab配置WebHook



出現(xiàn)以上200信息,說(shuō)明WebHook成功


出現(xiàn)以上錯(cuò)誤的時(shí)候,Admin area => Settings => Network需要配置一下:

這樣使用Git上傳到GitLab,然后觀察Jenkins

參考:http://www.itdecent.cn/p/63b012ee52ea
Jenkins初始化及常見(jiàn)問(wèn)題整理 | zhimma's blog

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容