zl程序教程

您现在的位置是:首页 >  工具

当前栏目

jenkins配置自动构建部署

2023-06-13 09:15:42 时间
基于ssh key 拉取代码

实现jenkins服务器到gitlab服务器的基于密钥的验证,可以让jenkins连接到gitlab执行操作

在jenkins服务上生成 ssh key
#在jenkins服务器上生成密钥对

[root@jenkins-ubunutu1804 ~]#ssh-keygen

[root@jenkins-ubunutu1804 ~]#cat .ssh/id_rsa.pub

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC/LAA5tcFrSLye3QE9a+RH8LSYzwewJ4MBSBvVP7pImKMqg21WozWw56RKqiSsj9ewO8zL43yfAwOjetrKr2Ovbxw9bOaxj0r1CobpXsD5H7pS4Cq0lLJxSmFwCLroz1C9ecGhBWBmaCbkOaJ0Q6JLTO830w7noTFYZq4/NWTGtE4xpVDDNUFTAS4j4T/0QQF6YvXIqw0EzdKKkuZLw9Rl9f2j7D1eNJX3QyY2LSgxPsXE77PzlKeJue0FKa0JwzNeKNS01rM9ztoc0VQVhxjOgjY+rhoUtBFYwxXQLmwtBq82dh6qVBKrCDpNIPE+XaXFZVMyZ0Ahs3vD2iIP9Xz/ root@jenkins-ubunutu1804
在gitlab服务器上添加上面生成的ssh key

jenkins配置自动构建部署插图
jenkins配置自动构建部署插图(1)

在jenkins服务器上测试 ssh key

测试可以不使用用户名密码后直接获取代码

先在gitlab查看项目的下载地址:code>git@10.0.0.100:testgroup/testproject.git

jenkins配置自动构建部署插图(2)

在jenkins服务器上执行克隆,不再需要用户和密码

[root@jenkins-ubunutu1804 ~]#git clone git@10.0.0.100:testgroup/testproject.git

Cloning into testproject ...

remote: Enumerating objects: 9, done.

remote: Counting objects: 100% (9/9), done.

remote: Compressing objects: 100% (5/5), done.

remote: Total 9 (delta 0), reused 9 (delta 0)

Receiving objects: 100% (9/9), done.

[root@jenkins-ubunutu1804 ~]#ls

testproject

[root@jenkins-ubunutu1804 ~]#tree testproject/

testproject/

├── index.html

└── README.md

0 directories, 2 files

[root@jenkins-ubunutu1804 ~]#
配置jenkins到gitlab非交互式拉取代码 jenkins 服务器添加凭据

Jenkins-凭据-jenkins—全局凭据—添加凭据

jenkins配置自动构建部署插图(3)
jenkins配置自动构建部署插图(4)

复制root的私钥

[root@jenkins-ubunutu1804 ~]#cat .ssh/id_rsa

-----BEGIN RSA PRIVATE KEY-----

MIIEpAIBAAKCAQEAvywAObXBa0i8nt0BPWvkR/C0mM8HsCeDAUgb1T+6SJijKoNt

VqM1sOekSqokrI/XsDvMy+N8nwMDo3rayq9jr28cPWzmsY9K9QqG6V7A+R+6UuAq

tJSycUphcAi66M9QvXnBoQVgZmgm5DmidEOiS0zvN9MO56ExWGauPzVkxrROMaVQ

wzVBUwEuI+E/9EEBemL1yKsNBM3SipLmS8PUZfX9o+w9XjSV90MmNi0oMT7FxO+z

85SnibntBSmtCcMzXijUtNazPc7aHNFUFYcYzoI2Pq4aFLQRWMMV0C5sLQavNnYe

qlQSqwg6TSDxPl2lxWVTMmdAIbN7w9oiD/V8/wIDAQABAoIBAQCCFLyqiCRujfXa

22Mmmi2hTgZ1HBqNILWhv6FAv7ZQA5yzJu7VTwUPtO8z5wZBbTdEscwuyEJaKMDn

Eoeh9yoLi71ZhqqLE4fbqSgXz+PbIF22WtZ0PeIV+JjIlQgptjeoVhsNKA1qYWBl

V1pVZlgeiOEVyUWREzvyfRv/4qMKGSOs9zHbsvSD7eqh8tq7P4jS4fNz6OM8JfqF

GLsbQUX8AlNxTraR9nv/hQx5KhUb5jqFV2yr3FK4IVziL91aM6nheH2DADj5th99

6u5+/zueRP30RX0F1Y6ny7FOxAe2ZIkQnGg/RlYxxdV3BZhnNiwjJ520gyC59RsD

bYaDdBwhAoGBAPSlJUcOiE+RJcQT5yeReHqOqaBoG4hw6fZyMfzX/cTHuE8iJvYB

78h7Nuw4z0TsSlpQdDgF3X5hbJn/VG10rxbbYIxFPO4b7X0WjEIS/QmxBIBChORj

3mhzSGf1DAuHE+chovNb5bjIxVArX+2TZHYieWaOC2YEEFgrpSv2b3CXAoGBAMgL

fZN//pBstXQk0Yz3kZx6++aJcZ0kUZVUU7rrGOo3SSeaXOEgYDtcd86Uj8jCTPYs

4od+kfUzn0ixMCYjpfhca8WexIPrJ2Gd5toVqEZDV3QkwyT6T+BGVYHy2NwPGtH4

wYdjhNuNwiTap79EzCMOg85x/yrVw883BofxHfvZAoGBAPK1LGh0WHNnsqn2fOta

fMZJ5qtG3ZndO5/N5x3LQu4InieT4EdL4JFq/DAapDbinVlAXCyAVR/ek5msIBx/

GH16oyxGPI6VkmT5C6k5oWQOBEMiuyjCk5HYXUsVZx/AoNQ7IKiC0UMjm+1POto9

0fsJdJtz7IcHHRf8JN+amzB9AoGAbuJnpiXxjk6juhBak1/7N5i4Ho6bCnbCPhrz

Go4MTm98vlYDG8rdbKoRwtF4bdi93kr8+gv/jcIijaGhxdJGwkdAeddKqLDlMGfd

OY99qgzT4g4qmUmikveJmDFrYXeB71eKtqhEUYrfTZxiFVRmLxxxlTJ9NVouYqLm

nN3bN+kCgYAm+ffg75HKTyZFTBm3u/SGegeyZ1rAiiuIfn220Dt1Y8NwDoPhNTo0

AQ8lNCEQxC4KKok2a4GJViKaVHeTWYOGvOXKZHG3Gs+caQq0jUGmLJC5CBiRm4n5

TpOBqfsMBe3SjDSwaCfEsHU4zoTTWb67dRhf1pVsGD24vj3m2Hbhgw==

-----END RSA PRIVATE KEY-----

添加私钥

jenkins配置自动构建部署插图(5)

4.3.2 jenkins创建任务

jenkins配置自动构建部署插图(6)

配置git项目地址和用户

添加完成的证书没有报错表示认证通过

jenkins配置自动构建部署插图(7)

测试构建项目 点击立即构建

jenkins配置自动构建部署插图(8)

验证构建结果

jenkins配置自动构建部署插图(9)
jenkins配置自动构建部署插图(10)

服务器验证数据
[root@jenkins-ubunutu1804 ~]#ll -d /var/lib/jenkins/workspace/testproject-test

drwxr-xr-x 3 jenkins jenkins 4096 Mar 7 18:11 /var/lib/jenkins/workspace/testproject-test/

[root@jenkins-ubunutu1804 ~]#ll /var/lib/jenkins/workspace/testproject-test

total 20

drwxr-xr-x 3 jenkins jenkins 4096 Mar 7 18:11 ./

drwxr-xr-x 4 jenkins jenkins 4096 Mar 7 18:11 ../

drwxr-xr-x 8 jenkins jenkins 4096 Mar 7 18:11 .git/

-rw-r--r-- 1 jenkins jenkins 48 Mar 7 18:11 index.html

-rw-r--r-- 1 jenkins jenkins 17 Mar 7 18:11 EADME.md
将代码部署至后端服务器

先和后端服务器实现基于key验证

[root@jenkins-ubunutu1804 ~]#ssh-copy-id 10.0.0.102

[root@jenkins-ubunutu1804 ~]#ssh 10.0.0.102

Last login: Sat Mar 7 18:46:25 2020 from 10.0.0.1

[root@web-ubuntu1804 ~]#exit

logout

Connection to 10.0.0.102 closed.

jenkins配置自动构建部署插图(11)
jenkins配置自动构建部署插图(12)
jenkins配置自动构建部署插图(13)
jenkins配置自动构建部署插图(14)
jenkins配置自动构建部署插图(15)
jenkins配置自动构建部署插图(16)

在后端服务器查看文件是否复制成功

[root@web-ubuntu1804 ~]#ll /var/www/html/

total 20

drwxr-xr-x 2 root root 4096 Mar 7 18:58 ./

drwxr-xr-x 3 root root 4096 Mar 7 16:12 ../

-rw-r--r-- 1 root root 48 Mar 7 18:58 index.html

-rw-r--r-- 1 root root 612 Mar 7 16:12 index.nginx-debian.html

-rw-r--r-- 1 root root 17 Mar 7 18:58 README.md

访问后端服务器页面验证是否成功

jenkins配置自动构建部署插图(17)

范例:针对tomcat后端服输,构建执行shell脚本内容

ssh-copy-id tomcat服务器IP #实现到生产服务器的免密钥认证

cd /var/lib/jenkins/workspace/linux36-job1/ 

tar czvf code.tar.gz index.html 

scp code.tar.gz www@192.168.7.105:/data/tomcat/tomcat_appdir/

scp code.tar.gz www@192.168.7.106:/data/tomcat/tomcat_appdir/

ssh www@192.168.7.105 /etc/init.d/tomcat stop rm -rf /data/tomcat/tomcat_webdir/myapp/* cd /data/tomcat/tomcat_appdir tar xvf code.tar.gz -C /data/tomcat/tomcat_webdir/myapp/ 

ssh www@192.168.7.106 /etc/init.d/tomcat stop rm -rf /data/tomcat/tomcat_webdir/myapp/* cd /data/tomcat/tomcat_appdir tar xvf code.tar.gz -C /data/tomcat/tomcat_webdir/myapp/ 

ssh www@192.168.7.105 /etc/init.d/tomcat start 

ssh www@192.168.7.106 /etc/init.d/tomcat start 
更新代码再次构建,查看后端服务器是否能自动更新
#在之前曾经执行git clone的主机上执行下面操作,更新代码

[root@ubuntu1804 ~]#cd /data/testproject/

[root@ubuntu1804 testproject]#vim index.html

[root@ubuntu1804 testproject]#cat index.html

 h1 index.html v1 /h1 

 h1 index.html v2 /h1 

 h1 index.html v3 /h1 

[root@ubuntu1804 testproject]#git add .

[root@ubuntu1804 testproject]#git commit -m v3

[master 36d0b96] v3

 1 file changed, 1 insertion(+)

[root@ubuntu1804 testproject]#git push

Username for http://10.0.0.100 : wang

Password for http://wang@10.0.0.100 :

Counting objects: 3, done.

Delta compression using up to 2 threads.

Compressing objects: 100% (3/3), done.

Writing objects: 100% (3/3), 301 bytes | 301.00 KiB/s, done.

Total 3 (delta 0), reused 0 (delta 0)

To http://10.0.0.100/testgroup/testproject.git

 44dbd92..36d0b96 master - master

[root@ubuntu1804 testproject]#

jenkins配置自动构建部署插图(18)
jenkins配置自动构建部署插图(19)

再次访问后端服务器页面,验证是否成功

jenkins配置自动构建部署插图(20)

本文链接:http://www.yunweipai.com/35768.html

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/52609.html

jenkinslinuxnginxshellTomcatUbuntu