提示:本文原创作品,良心制作,干货为主,简洁清晰,一看就会
目录
- 前言
- 一、Jenkins结合ansible的好处
- 二、Jenkins结合ansible实战
-
- [2.1 Jenkins本机配置](#2.1 Jenkins本机配置)
- [2.2 下载插件](#2.2 下载插件)
- [2.3 配置Tools](#2.3 配置Tools)
- [2.4 Jenkins前置项目配置](#2.4 Jenkins前置项目配置)
- [2.5 Jenkins使用ansible命令](#2.5 Jenkins使用ansible命令)
- [2.6 Jenkins使用ansible-playbook剧本](#2.6 Jenkins使用ansible-playbook剧本)
前言
对Jenkins基础知识不了解的小伙伴可以参考这篇文章
https://blog.csdn.net/m0_63756214/article/details/155387987?spm=1001.2014.3001.5501
对ansible基础知识不了解的小伙伴可以看这篇文章
https://blog.csdn.net/m0_63756214/article/details/155024864?spm=1001.2014.3001.5501
对ansible-playbook基础知识不了解的小伙伴可以看这篇文章
https://blog.csdn.net/m0_63756214/article/details/155066320?spm=1001.2014.3001.5501
一、Jenkins结合ansible的好处
Jenkins结合Ansible构建项目能大幅提升部署效率与标准化程度:Jenkins擅长自动化触发构建、版本控制和任务调度,Ansible则专注于批量服务器的配置管理、应用部署,二者结合可实现从代码构建到跨环境部署的全流程自动化
Jenkins结合ansible最使用的场景就是:面对成百上千台前后端服务器,直接在 Jenkins 系统配置中维护所有服务器信息十分繁琐。通过 Jenkins 整合 Ansible,仅需在 Jenkins 系统配置中配置 Ansible 相关信息,即可由 Ansible 完成对所有前后端服务器的发包操作
二、Jenkins结合ansible实战
2.1 Jenkins本机配置
bash
[root@jenkins ~]# yum -y install ansible
[root@jenkins ~]# ansible --version
ansible 2.9.27
config file = /etc/ansible/ansible.cfg
configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python2.7/site-packages/ansible
executable location = /usr/bin/ansible
python version = 2.7.5 (default, Oct 14 2020, 14:45:30) [GCC 4.8.5 20150623 (Red Hat 4.8.5-44)]
[root@jenkins ~]# vim /etc/ansible/hosts #添加前后端服务器
[jenkins-frontend] #前端主机组,下面可以写多个ip
192.168.136.134 #前端服务器地址
[jenkins-backend] #还可以添加其它标签,比如设置一个后端服务器标签
192.168.136.135 #后端服务器地址
[root@jenkins ~]# ssh-copy-id 192.168.136.134 #发送公钥给前端服务器,做过的朋友可以直接跳过
[root@jenkins ~]# ansible jenkins-frontend -m ping #测试能不能ping通
[WARNING]: Invalid characters were found in group names but not replaced, use -vvvv to see details
192.168.136.134 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python3"
},
"changed": false,
"ping": "pong"
}
[root@jenkins ~]# which ansible #查看命令存放位置
/usr/bin/ansible
[root@jenkins ~]# which ansible-playbook
/usr/bin/ansible-playbook
2.2 下载插件
去Jenkins的plugins中下载插件
下载好插件后最好重启一下Jenkins

2.3 配置Tools
去Tools中配置ansible和ansible-playbook命令的位置

2.4 Jenkins前置项目配置
新建一个项目

设置保留构建方案

设置身份认证

设置构建步骤
分别是:进入前端页面目录下---->安装前端项目依赖包---->编译打包成可以直接部署的静态文件
这些都是在Jenkins本机上操作的语句,大家根据具体的情况具体写

2.5 Jenkins使用ansible命令
下面就是在Jenkins页面上配置ansible


这里再增加一个构建步骤

构建一下,显示成功

2.6 Jenkins使用ansible-playbook剧本
当需要执行多条 Ansible 操作时,逐个添加构建步骤会比较繁琐。此时可以将这些操作写成 Ansible 剧本并保存到 Jenkins 服务器上,之后只需在 Jenkins 中添加一个构建步骤,调用该剧本即可完成所有操作,更高效简洁
bash
#设置剧本
#作用是让Jenkins发送静态文件压缩包到前端服务器的/ruoyi/ruoyi-ui下,然后再解压,实现批量部署
[root@jenkins ~]# cat /etc/ansible/jenkins-frontend.yml
---
- hosts: jenkins-frontend #前端主机组
user: root
tasks:
- name: copy文件
copy: src=/root/.jenkins/workspace/test-ruoyi-vue/ruoyi-ui/dist.tar.gz dest=/ruoyi/ruoyi-ui
- name: 解压dist.tar.gz
unarchive:
src: /ruoyi/ruoyi-ui/dist.tar.gz # 源文件绝对路径
dest: /ruoyi/ruoyi-ui/ # 解压目标目录
remote_src: yes # 确认文件在远程服务器(而非控制端)
mode: '755' # 解压后文件统一赋权755
[root@jenkins ~]# ansible-playbook --syntax-check /etc/ansible/jenkins-frontend.yml #检查语法
先删除刚才添加的ansible信息,刚才添加的两个我都删除了

重新增加构建步骤


构建项目,显示成功

注:
文中若有疏漏,欢迎大家指正赐教。
本文为100%原创,转载请务必标注原创作者,尊重劳动成果。
求赞、求关注、求评论!你的支持是我更新的最大动力,评论区等你~