一点php博客分享如何使用搭建jenkins实现自动化部署多台服务器,本篇教程使用jenkins中pipline流水线插件方案,一般情况安装jenkins时选择推荐默认安装插件会自动安装上。因为涉及到部署多台服务器,所以采用流水线方案会更加清晰了解每一步操作步骤。
1.Jenkins安装建议采用yum安装(先装jdk8),安装步骤如下:
1 2 3 4 5 |
Sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key yum install jenkins |
注:如果采用通用手动安装方式直接下载war包进行启动,如果8080端口被占用,会启动失败。通过指令java -jar jenkins.war --httpPort=9999 可以尝试修改端口进行启动(可能姿势不对,通过war包手动第一次启动修改失败),启动后会生成对应文件在/usr/lib/jenkins /var/lib/jenkins /etc/ini.d/jenkins(配置文件),如果采用yum安装安装完成就已存在,可以直接在配置文件中修改端口。
2.通过游览器ip+端口启动Jenkins客户端,第一次在shell命令行执行下面指令
1 |
cat /root/.jenkins/secrets/initialAdminPassword |
在该文件中获取密码,进入后介意选择第一个推荐安装默认插件,设置完账号密码后可能会出现跳转白屏。
解决方式停止Jenkins服务,重新启动,客户端重新登入即可,登入后建议先在选择分配用户权限中修改对应权限。
3. 通过新建任务可以完成自动化部署,如果需要让Jenkins执行.sh脚本,并且用'./xx.sh' 方式会提示权限不足,改为'sh xx.sh即可',也可以直接在jenkins中写shell指令。
4. 配置对应节点数据,实现绑定多台服务器,可以选择性让某些服务器运行jenkins任务,或者不同节点运行不同任务。
5. 通过使用jenkins流水线pipline方式部署任务,建议选择使用file方式便于管理也可以直接在config中写入pipline指令,基本上可以实现基本自动化流程(pipline是插件,没有请先安装,一般在第一次进入Jenkins时选择默认推荐插件会带上)。
简单配置案例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
pipeline { agent none stages { stage('生成打包') { //流水线节点名称 agent { node { label 'master' } } //选择使用哪一台代理节点运行 steps { echo '生成完成' sh returnStatus: true,script: "docker rmi -f registry.cn-hangzhou.aliyuncs.com/zjy_test/demo:v3" //shell指令报错也继续执行下面流程 sh 'shell指令' } } stage('部署123') { //流水线节点名称 agent { node { label 'a' } } //选择使用哪一台代理节点运行 steps { echo '123部署完成' sh 'shell指令"' } } stage('部署117') { agent { node { label 'a' } } steps { echo '117部署完成' sh 'shell指令' } } } } |
注:agent中的node节点需要在系统管理中配置节点,并且保证连接成功,sh中写具体需要自动化操作的shell指令即可,上面流水线方案会自动按顺序执行完123和117服务器指令,如果遇到错误提示会立刻停止执行。
一点php,一点技术分享。
2021年5月26日 上午10:32 沙发
学习了
2021年12月18日 上午11:22 板凳
感谢分享 赞一个