Jenkins集成Gitlab实现自动化部署的全过程记录

2022-04-07 13:14:39
目录
一、环境准备1.配置无密码登录(1)Jenkins 服务器上生成一对公钥、私钥(2)获取公钥信息(3)获取私钥信息(4)复制公钥到应用服务器二、配置 Gitlab1.创建示例项目 test-code-review2.配置 SSH Keys3.配置 Access Token三、配置 Jenkins1.安装插件2.配置 GitLab 凭据3.配置 GitLab 连接4.配置 Publish over SSH5.配置 SSH Servers6.创建任务7.配置任务四、配置 Gitlab Webhook五、测试总结 

一、环境准备

服务器IP操作系统安装说明
Jenkins192.168.1.58CentOS 7.5安装 Jenkins,见 CentOS下安装Jenkins
Gitlab192.168.1.15CentOS 7.5安装 Gitlab
应用192.168.1.38CentOS 8.5部署应用

1.配置无密码登录

(1)Jenkins 服务器上生成一对公钥、私钥

Jenkins 服务器上执行:

ssh-keygen -t rsa -f '/root/.ssh/id_rsa' -N ''

参数说明:

-f 选项指定密钥文件路径;

-t 选项指定加密算法;

-b 选项指定密钥长度;

-N 选项指定密钥口令;

-C 选项指定注释。

该命令将在 /root/.ssh 目录下面产生一对密钥 id_rsa 和 id_rsa.pub。

(2)获取公钥信息

公钥信息在配置 Gitlab SSH Keys 时用到。

[root@localhost .ssh]# cat /root/.ssh/id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+GAV9Tjr9VOzhOVNN4EqnqIlErkoV7Xi2F6DQ8ru8BJY1s5HWAjzp2qlb/o3XzG4TYmrMb1i+JUW8LHYCY49rfl6p9F+cXzUq45dqPpCUwSwnkg3X27ZkIIVF/hDe0W7n90G2GrVW2wZzs0mxEUA8JG5Ae4oLt1PgbGuyXeaulrQ706l0DXVaQhf8/v/5HBPWFL/jsKZhyTQa+xSrFsaAM+82jyzbxCg13izFkMO0bQ9NQsJMQPxMJmkrWbPzGR+G/3vj+mLXvbiFtwT3xrC+DIXf5GLxwOS7ShoDH50pDWV50Q2d0z83JKxM3kdzjViXLXf5sV3lZGMx9w0wihmJ root@localhost.localdomain

(3)获取私钥信息

私钥信息在配置 Jenkins Publish over SSH 时用到。

[root@localhost ~]# cat /root/.ssh/id_rsa
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAvhgFfU46/VTs4TlTTeBKp6iJRK5KFe14theg0PK7vASWNbOR
1gI86dqpW/6N18xuE2JqzG9YviVFvCx2AmOPa35eqfRfnF81KuOXaj6QlMEsJ5IN
19u2ZCCFRf4Q3tFu5/dBthq1VtsGc7NJsRFAPCRuQHuKC7dT4Gxrsl3mrpa0O9Op
dA11WkIX/P7/+RwT1hS/47CmYck0GvsUqxbGgDPvNo8s28QoNd4sxZDDtG0PTULC
TED8TCZpK1mz8xkfhv974/pi1724hbcE98awvgyF3+Ri8cDku0oaAx+dKQ1ledEN
ndM/NySsTN5Hc41Yly13+bFd5WRjMfcNMIoZiQIDAQABAoIBAC+C2XxkHSJMI5h3
N3bzZDVbTlO4LBQm8lCwvyT6RinMC68IXp7amFbqrAGuMc2J7skxg/fsrIV502Ag
zK30LFh1kTtxNKRkt2ks0R9g28oSLfMF8ifNZlzINAc2ZQkL12hqyCW3rzMyMv6g
BP8YjLF7eYLsXahn/bLN5m0CQzHHUqN3qGVc0eTOe1NlXjzLwpfydp3kJBFdIdbA
7Zd59vid8joCRlIQ/Sw8k05cH8thmJmRu6nZtYnFtxcKU0eXygZkN4Vd1LPytKeL
YjC4HdnIVS7weWq4UBtuY+gk8o7qBH44PWIf78HCtJMUTmWamjKMRk2xzuQCrpkZ
Mex05MECgYEA4B8nV17bTccz/vgwLFgWuhQe8nUdNmtjACroKiOG/ss0MEGSMdFO
XMdwv5e2QrqGOvi/QmfvZKaA8ep2W9BO+yS7iOvHKRF0ZjxxJQr92tBaCyobGjhk
tkh0wu5xu9DK+O+gwe5Khb8h1/k1qiVRB4IOoRd7x2U3hCeRSRlrZHUCgYEA2SHT
dRNNLDzXNQ8MsPYyrwh1+zAEfzFVFg6pwpNyTBLx8rhnMFxtrfevAxt7om34hYLt
EY8Wxmqkw8KlywJL1gSlIWTEmpU4ntUOdYW5Kqtlmgqn9TddIzMnXtsG3Bh8IoSd
BBGZkv7RZ+W+OMBPcxKky9mkmxkwJM+i69L/LkUCgYAzZHFtA39eUnOF3/uL75cm
jD6ccmaEeBN3kl8yansmKgqJlj+j1M8XT1R3Wp6cppDpLOkOnS6z8cpXrt/9JcM2
q7GlMAu3Sx1Z5Do9uEuFxYkgTkNwu8W8VtkPagYCf1pLwwcl8TJ9gNqN38OChJQU
GKqqHexwSLF2SGx0SrPpkQKBgHy3RCkL9BjDvWz5fvWqBASrXHDx7LNOF6w6seFU
JaNygkxDBOovPMRe7sRfJc1vUv8E67xZLuC64naat/X6FKsSMfMTWSXdLg91Gv//
1hKfLhWjp0NfEH0mZafDMJZ87dg5yaJLpaVb/dWqjW81bq0O+V8pXLXFavTJ2q+P
mwjtAoGBALJHXcaTDq4HsapptIPO93cp2HM7xryXzNY3/YNTYXj/rYwhk01RZ0+c
6m/FCQcdFEYkDQ+TIKG6X8gvzguEurjqf0/KBvlRrQJN9d6i+aEnrdAePutbWi39
XFJXdRDDF9lYr9oGB9kh6ovm9mh6BiLEwNhYIccQzAN9p9U59KZX
-----END RSA PRIVATE KEY-----

(4)复制公钥到应用服务器

ssh-copy-id 192.168.1.38

该命令将生成的 id_rsa.pub 公钥中的内容远程写入到 IP 对应主机的 .ssh/authorized_keys 文件中。

二、配置 Gitlab

1.创建示例项目 test-code-review

2.配置 SSH Keys

进入 “Settings”->“SSH Keys”,输入公钥、Title,点击【Add key】:

3.配置 Access Token

进入 “Settings”->“Access Tokens”,输入Name,勾选“api”,点击【Create personal access token】:

将生成的 Access Token 记录下来,后面在配置 GitLab 凭据时用到:

Your New Personal Access Token:
f65j-yswq-xyC_oyoW8S

三、配置 Jenkins

1.安装插件

进入“插件管理”,安装插件:GitLab、Generic Webhook Trigger、Git Parameter、Publish Over SSH,安装完插件重启系统:

2.配置 GitLab 凭据

如下图,点击【添加】添加凭据:

3.配置 GitLab 连接

输入 连接名称、连接地址,点击【Test Connection】测试成功后点击【保存】:

4.配置 Publish over SSH

进入“系统管理” -> “系统配置”,配置 Publish over SSH:

5.配置 SSH Servers

配置 SSH Servers,输入应用服务器的 IP 和用户名,点击【Test Configuration】测试成功后,点击【保存】:

注意:配置 Jenkins SSH Servers 时,Remote Directory 设为 “/”,如果不设置,文件会默认拷贝到 /root 目录下。

6.创建任务

点击“新建任务”,创建任务 test-code-review:

7.配置任务

(1)源码管理中配置 Git

输入 Repository URL 和 Credentials:

其中 Credentials 类型可以是 Username with password 或 SSH Username with private key。

类型为 Username with password 使用 http(s)????/ 开头的URL,类型为 SSH Username with private key 使用 git:// 开头的URL:

(2)构建触发器

勾选“Build when a change is pushed to GitLab…”,记录下 GitLab webhook URL:http://192.168.1.58:8000/project/test-code-review,后面在配置 GitLab webhook 时用到。点击【高级】:

点击【Generate】,生成 Secret token:5017fe1628e915f22ba78214a7cee24f,记录下来,后面在配置 GitLab webhook 时用到:

(3)构建

选中“Send files or execute command over SSH”:

构建设置:

四、配置 Gitlab Webhook

登录 GitLab,进入“Settings” -> “Integrations”,输入URL 和 Secret Token:

去掉勾选“Enable SSL verification”,点击【Add webhook】:

测试 Webhook 配置:

出现如下提示说明配置成功:

五、测试

修改代码并 push 到远程仓库:

查看 Jenkins 控制台输出,提示已经成功:

总结 

到此这篇关于Jenkins集成Gitlab实现自动化部署的文章就介绍到这了,更多相关Jenkins集成Gitlab自动化部署内容请搜索易采站长站以前的文章或继续浏览下面的相关文章希望大家以后多多支持易采站长站!