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

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

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

环境准备

一、Gitlab项目准备

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

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

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

仓库地址: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)【显哥出品,必为精品】

[root@jenkins ~]# mkdir -p /server/scripts
[root@jenkins ~]# vim /server/scripts/deploy_rollback.sh
[root@jenkins ~]# cat /server/scripts/deploy_rollback.sh
#!/bin/bash
Wep_Ip='10.0.0.7'
Code_Dir=/usr/share/nginx/html
Old_Code_Dir=/code/${JOB_NAME}_${BUILD_NUMBER}
#判断旧的代码目录是存在
ssh root@$Wep_Ip "[ -d $Old_Code_Dir ] || mkdir -p $Old_Code_Dir"
case $Status in
    Deploy)
        echo "当前选择${Status}版本!"
        #将旧的代码移动到旧的代码目录中
        ssh root@${Wep_Ip} "mv -f $Code_Dir/* $Old_Code_Dir"
        #将新获取的代码推送到代码目录中
        scp -rp $WORKSPACE/* root@${Wep_Ip}:$Code_Dir
        echo "代码发布完成!"
        ;;
    Rollback)
        echo "当前选择${Status}版本!"
        echo "你选择回滚到${Version}版本!"
        #将错误的代码移动到旧的代码目录中
        ssh root@${Wep_Ip} "mv -f $Code_Dir/* $Old_Code_Dir"
        #将回滚的代码推送到代码目录中
        ssh root@${Wep_Ip} "cp -a /code/${JOB_NAME}_${Version}/* $Code_Dir"
        echo "代码回滚到${Version}完成!"
        ;;
    *)
        exit
esac

#免密传输给客户端(注意 :10.0.0.7是客户端的地址)
[root@jenkins ~]# ssh-copy-id  -i /root/.ssh/id_rsa.pub  root@10.0.0.7
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host '10.0.0.7 (10.0.0.7)' can't be established.
ECDSA key fingerprint is SHA256:60WNoACIC/+M/69M2SrCLe4k5qYpKaEVqsoUmqGubnI.
ECDSA key fingerprint is MD5:0a:e8:0d:c9:35:83:7e:15:17:5f:0c:b8:0e:c2:ce:f9.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/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
root@10.0.0.7's password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'root@10.0.0.7'"
and check to make sure that only the key(s) you wanted were added.

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)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到