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
测试可以不使用用户名密码后直接获取代码
先在gitlab查看项目的下载地址:code>git@10.0.0.100:testgroup/testproject.git
在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—全局凭据—添加凭据
复制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-----
添加私钥
4.3.2 jenkins创建任务 配置git项目地址和用户添加完成的证书没有报错表示认证通过
测试构建项目 点击立即构建 验证构建结果[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.
在后端服务器查看文件是否复制成功
[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
访问后端服务器页面验证是否成功
范例:针对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]#
再次访问后端服务器页面,验证是否成功
本文链接:http://www.yunweipai.com/35768.html
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/52609.html
jenkinslinuxnginxshellTomcatUbuntu相关文章
- jenkins教程_1 简介「建议收藏」
- Jenkins安装_jenkins sonar
- allure测试报告+Jenkins集成
- Jenkins安装_ansible jenkins
- jenkins自动触发构建_jenkins调用bat脚本
- Jenkins(5)生成allure报告「建议收藏」
- Jenkins下载_windows安装jenkins
- jenkins 邮件_邮件发送协议邮件接收协议
- jenkins+SVN配置「建议收藏」
- CI/CD:基于K8s弹性资源池的配置【第一步】自动化创建Jenkins的Agent节点
- Jenkins pipeline 如何到子文件中去执行命令
- Jenkins发布项目[项目已经配置完成的情况下]
- Jenkins+Docker 实现一键自动化部署项目!步骤齐全,少走坑路
- Jenkins安装Role插件配置权限
- 在Linux安装Jenkins
- jira webhook发消息_jenkins webhook
- 使用python-jenkins管理Jenkins
- Jenkins配置邮件通知
- 还在用Jenkins?试试这款面向DevOps的自动化部署工具吧,贼带劲!!
- Jenkins 自由风格项目Freestyle project和流水线pipeline解释
- freeipa 与jenkins的集成
- Kubernetes配合Jenkins实现轻量自动持续集成
- Jenkins入门系列之——02第二章 Jenkins安装与配置详解程序员
- jenkins插件管理及安装
- 使用docker安装jenkins