Jenkins安裝:https://www.cnblogs.com/hovin/p/13516574.html
gitlab安裝:https://www.cnblogs.com/hovin/p/13524323.html
新建用戶,系統管理-->管理用戶
更改認證方式,系統管理 --> 全局安全配置,默認創建的用戶登錄后可以做任何操作,取決於默認的認證授權方式。
創建角色,系統管理 --> Manage and Assign Roles
對角色分配權限
將用戶分配到角色
(1) 生成授權碼
在QQ郵箱,設置 --> 賬戶 下,生成授權碼。
Jenkins --> 系統管理 --> 系統配置 --> Jenkins Location。
(3) 發件配置
Jenkins --> 系統管理 --> 系統配置 --> 郵件通知。
[root@jenkins ~]# 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:/jt9h8iR8iRrmY2fQ/IoOqa+QiltEJ1luEEReY91t30 root@jenkins The key's randomart image is: +---[RSA 2048]----+ | o+Bo | |. *.. . . . | | . + + . . o | |. . . . . . E | | o . S o | |. = . + = | | + . ^ o . | | . o ..O O.o .| | o++.o oo+oo . | +----[SHA256]-----+ [root@jenkins ~]# cat ~/.ssh/id_rsa.pub ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDsoFGwnuq3pqH8LvIXDXgFHZ1nw9kGB3TZGz99W9uvxoIco8wNW95z0dVZTwrB06fDbOmw0B/p4t9FpnyZOMwgBIkl5C5B2X/fS8h5WWPzXelJOJgcRApTN5qnf7fTQqn+Q+anVxKsQdTGZnhG4Wn4CMZA4nm0dwKYKo+qaYLawxx2YRXImMtyq4NNQVRvALBS1yVxjFjfXsnUAal+e7SUqHGGrHaLgOPlehmDK4yOJFNc+Xx3kQGC4wBxrEcjvrdP0w6I2SDbSaSUC3SxvtiS3O5568NUgXdFXQCN9FcpUoe7ujfbt8nhtAsivwS2Vzmq4nA/79IHp6qwyp1cHjzT root@jenkins
(2) 將key添加到gitlab
(3) 測試key拉取代碼
[root@jenkins ~]# git clone git@192.168.145.37:test-service/test-project.git Cloning into 'test-project'... The authenticity of host '192.168.145.37 (192.168.145.37)' can't be established. ECDSA key fingerprint is SHA256:NjIthsyJF52ZNkDd6/a8BL0DUk8n7fH9tMLJXNKBmLQ. ECDSA key fingerprint is MD5:03:6e:5d:65:26:32:32:22:3e:68:c2:86:83:4b:da:bf. Are you sure you want to continue connecting (yes/no)? yes #第一次連接需輸yes Warning: Permanently added '192.168.145.37' (ECDSA) to the list of known hosts. remote: Enumerating objects: 9, done. remote: Counting objects: 100% (9/9), done. remote: Compressing objects: 100% (6/6), done. remote: Total 9 (delta 0), reused 0 (delta 0) Receiving objects: 100% (9/9), done. [root@jenkins ~]# ll test-project/ total 8 -rw-r--r-- 1 root root 110 Aug 18 10:00 index.html -rw-r--r-- 1 root root 23 Aug 18 10:00 README.md
[root@jenkins ~]# cat ~/.ssh/id_rsa
Jenkins --> 系統管理 --> Manage Credentials --> 全局憑據 --> 添加憑據
(3) jenkins 創建 project
配置 git 項目地址和用戶
(4) 測試構建項目
#本地也有項目了 [root@jenkins ~]# ls /var/lib/jenkins/workspace/test-project index.html README.md
創建后會成生一個Tokens值,復制到jenkins。
(2) 登錄jenkins,添加api token
Jenkins --> 系統管理 --> Manage Credentials --> 全局憑據 --> 添加憑據。
然后打開系統管理,進入系統設備,配置gitlab。
(3) jenkins新建一個pipline job
(4) 生成拉取代碼的 pipline 腳本
點擊流水線語法,可以生成拉取gitlab上代碼的語句,如下所示:
也可以執行shell命令:
(5) 進入gitlab,進行項目 --> settings --> Integrations
本地測試會遇到以下錯誤:
解決辦法如下:
添加后webhook后,還可以測試連接是否生效:
jenkins也自動觸發了構建:
至此,觸發器就已配置成功,開發一旦有提交代碼,就會自動構建。