DevOps-Jenkins 分布式实现代码部署和回滚

jenkins 分布式

在众多 Job 的场景下,单台 jenkins master 同时执行代码 clone、编译、打包及构建,其性能可能会出现瓶颈从而会影响代码部署效率,影响 jenkins 官方提供了 jenkins 分布式构建,将众多 job 分散运行到不同的 jenkins slave 节点,大幅提高并行 job 的处理能力。

配置 slave 节点 java 环境:

slave 服务器创建工作目录,如果 slave 需要执行编译 job,则也需要配置 java 环境并且安装 git、svn、maven 等与 master 相同的基础运行环境,另外也要创建与 master 相同的数据目录,因为脚本中调用的路径只有相对一 master 的一个路径,此路径在master 与各 node 节点必须保持一致。




1. 由主节点下发构建命令,agent执行构建 

2. jenkins agent 配置到gitlab免密拉取代码;

3. 多机房 模式

slave创建工作目录,必须和master保持一致

mkdir -p /var/lib/jenkins

配置java环境

yum -y install java-1.8.0-openjdk.x86_64 java-1.8.0-openjdk-devel

添加 slave 节点

Jenkins—系统管理—节点管理—新建节点

 部分 jenkins slave 信息

启动方式选择SSH,选择不校验证书

 添加 slave 认证凭据

jenkins slave 创建日志 

 验证 slave 状态

 验证 slave 进程状态

拷贝jenkin slave 公钥到web服务器

[root@jenkins-slave-1 ~]# ssh-copy-id  www@192.168.0.142
[root@jenkins-slave-1 ~]# ssh-copy-id  www@192.168.0.79

[root@jenkins-slave-2 ~]# ssh-copy-id  www@192.168.0.142
[root@jenkins-slave-2 ~]# ssh-copy-id  www@192.168.0.79

创建job运行验证

Started by user jenkinsadmin
Running as SYSTEM
Building remotely on jenkins-slave-1 (jenkin-slave1) in workspace /var/lib/jenkins/workspace/haha   //可以看到已经调度任务到了slave1
[haha] $ /bin/sh -xe /tmp/jenkins4715630127033057049.sh
+ echo haha
haha
Finished: SUCCESS

代码回滚

cd /var/lib/jenkins/workspace/linux38-web1-master ; rm -rf myapp.tar.gz ; ; git reaet --hard HEAD^ ; tar -zcvf myapp.tar.gz ./*       //回滚到上个版本

scp myapp.tar.gz www@web1:/data/tomcat/tomcat_appdir

ssh www@web1 "bash /opt/apps/tomcat.sh stop"

ssh www@web1  "cd /data/tomcat/tomcat_appdir ; rm -rf /data/tomcat/tomcat_webapps/myapp/* ; tar -xvf /data/tomcat/tomcat_appdir/myapp.tar.gz -C  /data/tomcat/tomcat_webapps/myapp"

ssh www@web1 "bash /opt/apps/tomcat.sh start"

 

posted @ 2021-12-28 23:25  不会跳舞的胖子  阅读(283)  评论(0编辑  收藏  举报