安装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了,证明回滚成功
- 执行一次回滚任务,回滚到上一次部署