【Jenkins 与 Ansible 集成指南:从优势解析到实战落地(含本机配置、插件安装、工具配置及命令 / 剧本两种 Jenkins 调用方式全流程】

提示:本文原创作品,良心制作,干货为主,简洁清晰,一看就会

目录

  • 前言
  • 一、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中配置ansibleansible-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%原创,转载请务必标注原创作者,尊重劳动成果。

求赞、求关注、求评论!你的支持是我更新的最大动力,评论区等你~

相关推荐
阿方索2 小时前
Ansible
ansible
一点晖光11 小时前
jenkins优化记录
运维·jenkins
ice_bird1 天前
Ansible一键部署k8s1.28.2集群
kubernetes·ansible
成为你的宁宁1 天前
【基于 GitLab Webhook 的 Jenkins 自动触发构建实现手册:涵盖概念原理、环境配置、故障处理及 Tag/Commit 维度参数化构建实践】
自动化·gitlab·jenkins
朱 欢 庆1 天前
Jenkins任务执行完成后发送邮件
前端·经验分享·jenkins
成为你的宁宁1 天前
【Jenkins添加钉钉通知】
jenkins·钉钉
Filotimo_1 天前
在java后端开发中,ES的用处
java·elasticsearch·jenkins
回吐泡泡oO1 天前
ElasticSearch添加登录校验(仅供参考)
java·elasticsearch·jenkins
别多香了1 天前
Ansible部署、核心概念与操作指南
ansible