jenkins来实现代码的上线
脚本:
1.进入对应的目录
2.打包
3.scp推送
- 脚本内容:html_deploy.sh
#!/usr/bin/bash
Date=$(date +%F-%H-%M)
web_server="192.168.111.22 192.168.111.23"
code_tar () {
cd /var/lib/jenkins/workspace/freestyle-monitor
tar czf /opt/web-${Date}.tar.gz ./*
}
scp_web () {
for host in $web_server
do
scp -r /opt/web-${Date}.tar.gz root@${host}:/code/
ssh root@${host} "mkdir -p /code/web-${Date} && \
tar xf /code/web-${Date}.tar.gz -C /code/web-${Date} && \
rm -f /code/web-${Date}.tar.gz && \
rm -rf /code/web && \
ln -s /code/web-${Date} /code/web"
done
}
deploy () {
code_tar
scp_web
}
deploy
- jenkins系统与web系统需要密钥配置,所有将jenkins主机的公钥发送到两台web主机即可
[root@jenkins /scripts]# ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
#脚本需要添加执行权限
[root@jenkins /scripts]# chmod +x html_deploy.sh
[root@jenkins /scripts]# sh -x html_deploy.sh #测试执行脚本运行
-
查看系统已经存在web站点代码
-
jenkins服务配置,继承“9.搭建一套。。。”的jenkins配置的基础上添加shell命令:sh -x /scripts/html_deploy.sh
-
由于Jenkins服务默认系统用户是jenkins。所有需要在配置文件中修改为root用户,减少很多权限问题
-
重启jenkins服务
systemctl restart jenkins.service
-
jenkins服务上点击立即构建,构建成功
-
生成最新代码
-
访问网站成功
测试修改代码文件重新集成
-
修改代码
-
重新提交gitlab仓库
-
jenkins服务器重新点击立即构建
-
访问网站代码已经修改成功