安装jenkis并实现代码部署和回滚

安装jenkis并实现代码部署和回滚

1、安装

1.ubuntu安装

设置语言环境,防止后期Jenkins汉化出问题
localectl set-locale LANG=en_US.UTF-8
更新
apt update
安装openjdk
apt -y install openjdk-11-jdk

2.二进制包安装 Jenkins

deb 包下载地址国内镜像站点
https://mirrors.aliyun.com/jenkins/debian-stable/
https://mirror.tuna.tsinghua.edu.cn/jenkins/debian-stable/
安装
dpkg -i jenkins_2.319.3_all.deb

3.修改 jenkins 服务的用户

  • 默认jenkins服务使用jenkins 帐号启动,将文件复制到生产服务器可能会遇到权限问题,因此修改为root用户
[root@jenkins-ubunutu1804 ~]#vim /etc/default/jenkins
JENKINS_USER=root
JENKINS_GROUP=root
root@jenkins:~# systemctl daemon-reload
root@jenkins:~# systemctl restart jenkins

启动服务
systemctl is-active jenkins

4.生成ssh key
在jenkins服务上生成ssh key

ssh-keygen
root@jenkins:~# cat .ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCvryW5Oq6MVGz/FyRAmAD+Uo7GI9GWCPjIt7elhgJuG2HrrVH6pcsHZVfGUx5kb0Eds1jyxbws03MaD/SOQDRS7m7ua6spfT+3DODoPIOEmHvYGoU8VQqL1Ky6cFzqC23OWKKkI5+t5CahZb9bvReJekitpE8bSQm2kikgb2p9kP0GWoC+3H9H6umrMuRY5LubAq6il/73Z4TT6rb+9bQRjj6zjk5QQTvq9Lipki7RB0do7/2IvWJqqIjD4T6oqscPVvgAejB1MH1H5tP1EsucPbVzSQxmi7uoeM9fObS1C024ZBkeqBV/P3hMGlRMq7FXLiB3LiKo7M7fKqmf8l1Kn2CgwTQ7+Z/bF4+1vNkVFvqIXwYc35+npxsdYqwMgyMyckN4zLCZpBJ+ap+M2WZMhUJc6Y0DlYObyAc69891lY5Opnk5pJJl1/5+ozjxnipcG+CNeUC+hBlBkYBSVMOG2d1WbYJOPtaHGD5lprAlFJ14vPhsCZWDJ4+jrX3FQgk= root@jenkins

将生成的key添加到client上

ssh-copy-id 10.0.0.8

5.部署和回滚脚本

#!bin/bash
HOST_LIST="10.0.0.8"
APP=test-jenkins-gitlab-main
APP_PATH=/data/www
DATA_PATH=/opt
DATE=`date +%F_%H-%M-%S`

deploy () {
    for i in ${HOST_LIST};do
        ssh $i "rm -f  ${APP_PATH} && mkdir -pv ${DATA_PATH}/${APP}-${DATE}"
        scp -r * $i:${DATA_PATH}/${APP}-${DATE}
        ssh $i "ln -sv ${DATA_PATH}/${APP}-${DATE} ${APP_PATH}"
    done
}

rollback() {
    for i in ${HOST_LIST};do
        CURRENT_VERISION=$(ssh $i "readlink /data/html") 
        CURRENT_VERISION=$(basename ${CURRENT_VERISION})
        echo ${CURRENT_VERISION}
        PRE_VERSION=$(ssh $i "ls -1 ${DATA_PATH} | grep -B1 ${CURRENT_VERISION}|head -n1 ")
        echo $PRE_VERSION
        ssh $i "rm -f  ${APP_PATH}&& ln -sv ${DATA_PATH}/${PRE_VERSION} ${APP_PATH}"
    done
}
case $1 in 
deploy)
    deploy
    ;;
rollback)
    rollback
    ;;
*)
    exit
    ;;
esac

2、部署

  • jenkins 10.0.0.30
  • clien 10.0.0.8

2.1 创建部署任务

在jenkins工作台(web页面上)上创建部署任务test-jenkins-gitlab-main

在这里插入图片描述

2.2构建环境

test-jenkins-gitlab-main任务的配置----构建环境,选择shell,并填写相应的执行命令
在这里插入图片描述
然后最下面点击保存,切到任务界面,点立即构建,然后查看最新的信息在这里插入图片描述

2.3 查看是否部署成功

然后再client机器上查看是否部署成功
在这里插入图片描述
文件和jenkins上的文件一样,部署成功。然后多执行几次部署任务

在这里插入图片描述


3、回滚任务

部署了两次,一次是15:12部署,一次是15:15部署,最新部署15:15
目的: 回滚到上一次部署,即回滚到15:12部署

3.1创建部署任务

在jenkins工作台(web页面上)上创建部署任务test-jenkins-gitlab-main-rollback

在这里插入图片描述

3.2构建环境

test-jenkins-gitlab-main-rollback任务的配置----构建环境,选择shell,并填写相应的执行命令
在这里插入图片描述
然后最下面点击保存,切到任务界面,点立即构建,等待构建完成,去client查看是否回滚
在这里插入图片描述

3.3 查看是否部署成功

client上的文件已恢复到15:12了,证明回滚成功
在这里插入图片描述

  • 执行一次回滚任务,回滚到上一次部署

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值