• 欢迎访问显哥博客,本网站纯属学习技术,绝无商业用途,欢迎小伙伴们共同学习!研究技术!QQ:52249909 加我QQ
  • 世界75亿人,这么小的概率,能认识你,是我一生的幸运,不妨加个QQ接触一下:52249909 加我QQ

代码上线——Gitlab+Jenkins自动化部署实战(1)【显哥出品,必为精品】

Jenkins lixian 5年前 (2020-05-14) 3246次浏览 0个评论 扫描二维码
文章目录[隐藏]

环境准备

一、Gitlab项目准备

1.新建项目,需要在gitlab上建个项目,可以创建也可以导入项目

代码上线——Gitlab+Jenkins自动化部署实战(1)【显哥出品,必为精品】

2.这里导入在gitee码云上找的一个项目仓库

  1. 仓库地址:https://gitee.com/kangjie1209/monitor

代码上线——Gitlab+Jenkins自动化部署实战(1)【显哥出品,必为精品】

3.gitlab填写导入仓库地址信息

代码上线——Gitlab+Jenkins自动化部署实战(1)【显哥出品,必为精品】

4.导入仓库项目成功

代码上线——Gitlab+Jenkins自动化部署实战(1)【显哥出品,必为精品】

二、创建Jenkins任务

1.新建一个ltem任务

代码上线——Gitlab+Jenkins自动化部署实战(1)【显哥出品,必为精品】

2.填写任务名称和构建一个自由风格的软件项目

代码上线——Gitlab+Jenkins自动化部署实战(1)【显哥出品,必为精品】

三、填写任务设置参数

1.项目描述及构建过期天数和个数

代码上线——Gitlab+Jenkins自动化部署实战(1)【显哥出品,必为精品】

2.参数化构建过程

代码上线——Gitlab+Jenkins自动化部署实战(1)【显哥出品,必为精品】

3.源码管理设置

代码上线——Gitlab+Jenkins自动化部署实战(1)【显哥出品,必为精品】

代码上线——Gitlab+Jenkins自动化部署实战(1)【显哥出品,必为精品】

代码上线——Gitlab+Jenkins自动化部署实战(1)【显哥出品,必为精品】

代码上线——Gitlab+Jenkins自动化部署实战(1)【显哥出品,必为精品】

代码上线——Gitlab+Jenkins自动化部署实战(1)【显哥出品,必为精品】

4.构建触发器,创建钩子

代码上线——Gitlab+Jenkins自动化部署实战(1)【显哥出品,必为精品】

代码上线——Gitlab+Jenkins自动化部署实战(1)【显哥出品,必为精品】

代码上线——Gitlab+Jenkins自动化部署实战(1)【显哥出品,必为精品】

代码上线——Gitlab+Jenkins自动化部署实战(1)【显哥出品,必为精品】

代码上线——Gitlab+Jenkins自动化部署实战(1)【显哥出品,必为精品】

5.构建,执行命令

代码上线——Gitlab+Jenkins自动化部署实战(1)【显哥出品,必为精品】

  1. [root@jenkins ~]# mkdir -p /server/scripts
  2. [root@jenkins ~]# vim /server/scripts/deploy_rollback.sh
  3. [root@jenkins ~]# cat /server/scripts/deploy_rollback.sh
  4. #!/bin/bash
  5. Wep_Ip='10.0.0.7'
  6. Code_Dir=/usr/share/nginx/html
  7. Old_Code_Dir=/code/${JOB_NAME}_${BUILD_NUMBER}
  8. #判断旧的代码目录是存在
  9. ssh root@$Wep_Ip "[ -d $Old_Code_Dir ] || mkdir -p $Old_Code_Dir"
  10. case $Status in
  11. Deploy)
  12. echo "当前选择${Status}版本!"
  13. #将旧的代码移动到旧的代码目录中
  14. ssh root@${Wep_Ip} "mv -f $Code_Dir/* $Old_Code_Dir"
  15. #将新获取的代码推送到代码目录中
  16. scp -rp $WORKSPACE/* root@${Wep_Ip}:$Code_Dir
  17. echo "代码发布完成!"
  18. ;;
  19. Rollback)
  20. echo "当前选择${Status}版本!"
  21. echo "你选择回滚到${Version}版本!"
  22. #将错误的代码移动到旧的代码目录中
  23. ssh root@${Wep_Ip} "mv -f $Code_Dir/* $Old_Code_Dir"
  24. #将回滚的代码推送到代码目录中
  25. ssh root@${Wep_Ip} "cp -a /code/${JOB_NAME}_${Version}/* $Code_Dir"
  26. echo "代码回滚到${Version}完成!"
  27. ;;
  28. *)
  29. exit
  30. esac
  31.  
  32. #免密传输给客户端(注意 :10.0.0.7是客户端的地址)
  33. [root@jenkins ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub root@10.0.0.7
  34. /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
  35. The authenticity of host '10.0.0.7 (10.0.0.7)' can't be established.
  36. ECDSA key fingerprint is SHA256:60WNoACIC/+M/69M2SrCLe4k5qYpKaEVqsoUmqGubnI.
  37. ECDSA key fingerprint is MD5:0a:e8:0d:c9:35:83:7e:15:17:5f:0c:b8:0e:c2:ce:f9.
  38. Are you sure you want to continue connecting (yes/no)? yes
  39. /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
  40. /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
  41. root@10.0.0.7's password:
  42.  
  43. Number of key(s) added: 1
  44.  
  45. Now try logging into the machine, with: "ssh 'root@10.0.0.7'"
  46. and check to make sure that only the key(s) you wanted were added.
  47.  

6.构建后操作

代码上线——Gitlab+Jenkins自动化部署实战(1)【显哥出品,必为精品】

代码上线——Gitlab+Jenkins自动化部署实战(1)【显哥出品,必为精品】

四、返回构建状态

1.gitlab创建Access Token

代码上线——Gitlab+Jenkins自动化部署实战(1)【显哥出品,必为精品】

2.创建成功后,复制Access Token

代码上线——Gitlab+Jenkins自动化部署实战(1)【显哥出品,必为精品】

3.Jenkins进入系统设置

代码上线——Gitlab+Jenkins自动化部署实战(1)【显哥出品,必为精品】

4.找到Gitlab,填写gitlab的URL地址,可以复制浏览器上的域名或IP

代码上线——Gitlab+Jenkins自动化部署实战(1)【显哥出品,必为精品】

5.填写状态信息,选择API token,粘贴API token

代码上线——Gitlab+Jenkins自动化部署实战(1)【显哥出品,必为精品】

6.选择创建的API token,保存即可

代码上线——Gitlab+Jenkins自动化部署实战(1)【显哥出品,必为精品】


本站博主 , 版权所有丨如未注明 , 均为原创
转载请注明原文链接:代码上线——Gitlab+Jenkins自动化部署实战(1)【显哥出品,必为精品】
喜欢 (2)

您必须 登录 才能发表评论!