IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Jenkins+Ansible:助力基础设施建设 -> 正文阅读

[系统运维]Jenkins+Ansible:助力基础设施建设

简述

ansible自动化:操作系统初始化具体实现》《ansible自动化:基础软件的自定义安装》两篇文章我们虽然通过ansible在字符界面满足了操作需求,但是这并不友好。我们希望团队内每个人都能直接上手无缝使用,因此就需要一个图形化界面来提高可操作性。

在此我们借助Jenkins+Ansible 来实现图形化的参数化构建过程:

在这里插入图片描述

我们在输入IP后,根据选择的PLAYBOOK(剧本),再进一步选择不同的TAG(标签),就可以按需自动化实现我们的需求。

下面就来讲解下我们具体实现。

Ansible

Ansible作为我们的配置中心,主要依靠Playbook(剧本)进行各种自动化操作的编排。另借助Tag(标签)将整个编排过程进行细分,有助于我们进行多样性的组合,灵活复用。

在这里插入图片描述

在基础设施建设阶段,我们需求比较多的就是操作系统初始化、基础组件的安装,这两个场景的具体实现过程在《ansible自动化:操作系统初始化具体实现》、《ansible自动化:基础软件的自定义安装》进行了讲解,在此我们只展示下目录结构,希望大家在实现具体需求时根据ansible的目录功能合理安排。

1.基础组件初始化

ansible playbook 用于安装filebeat、java、python、nginx 等各种基础组件。


roles/software_install/
├── files
│   ├── filebeat
│   │   ├── filebeat-6.4.3-x86_64.rpm
│   │   └── filebeat.yml
│   ├── java
│   │   ├── app.tar.gz
│   │   ├── app.zip
│   │   ├── data.zip
│   │   └── jdk1.8.0_40.zip
│   ├── nginx
│   │   ├── echo-nginx-module-master.zip
│   │   ├── nginx-module-vts-master.zip
│   │   ├── nginx_upstream_check_module-master.zip
│   │   └── tengine-2.3.2.tar.gz
│   └── python
│       └── Python-3.7.0.tgz
├── handlers
│   └── main.yml
├── tasks
│   ├── filebeat.yml
│   ├── java.yml
│   ├── main.yml
│   ├── nginx.yml
│   ├── python.yml
│   └── python.yml.bak
└── vars
    └── main.yml

2.系统初始化

ansible playbook 用于操作系统初始化,如时间同步、内核参数、用户初始化、环境变量、安全基线等。

roles/os_init/
├── files
│   ├── ansible_key
│   │   └── id_rsa.pub
│   ├── blueking_key
│   │   └── id_rsa.pub
│   ├── CentOS6-Base-LAN.repo
│   ├── CentOS7-Base-LAN.repo
│   ├── client.xml
│   ├── deploy_key
│   │   └── id_rsa.pub
│   ├── epel7-LAN.repo
│   ├── zabbix-agent-3.0.14-1.el7.x86_64.rpm
│   ├── zabbix-agent-4.2.1-1.el6.x86_64.rpm
│   ├── zabbix-release-3.0-1.el7.noarch.rpm
│   ├── zabbix-release-4.2-1.el6.noarch.rpm
│   ├── zabbix-sender-3.0.14-1.el7.x86_64.rpm
│   └── zabbix-sender-4.2.1-1.el6.x86_64.rpm
├── handlers
│   └── main.yml
├── tasks
│   ├── dir.yml
│   ├── dns.yml
│   ├── init_pkg.yml
│   ├── iptables.yml
│   ├── limits.yml
│   ├── main.yml
│   ├── ntp.yml
│   ├── profile.yml
│   ├── rc.local.yml
│   ├── repo.yml
│   ├── rsyslog.yml
│   ├── safe.yml
│   ├── selinux.yml
│   ├── sshd.yml
│   ├── sysctl.yml
│   ├── user.yml
│   └── zabbix_agent.yml
├── templates
│   └── sysctl.conf.j2
└── vars
   ├── main.yml

其中Tag可以根据实际情况按需添加,例如系统初始化中虽然分了很多Tag,但是我们并没有每个都使用。

Jenkins

我们借助Jenkins的功能丰富的插件,来实现不同层面的需求。

1.参数化构建

Jenkins自带"String Parameter"、"Choice Parameter"虽然在一定程度上满了我们对普通参数的需求,但是无法满足我们对选择参数的联动(即主动选择反应参数),如选择系统初始化剧本,可以和其相关的标签联动。

在此我们选择安装"Active Choices Plugin-in"插件,实现主动选择反应参数。将"Active Choices Reactive Parameter"配合"Multi-line String Parameter"、"Choice Parameter"实现参数化的选择。

(1)Multi-line String Parameter

多行字符串参数,便于我们输入多个IP,实现批量操作。

在这里插入图片描述

(2)Choice Parameter

通过此参数,可以和后面的Active Choices Reactive Parameter 进行Tag联动。

在这里插入图片描述

(3)Active Choices Reactive Parameter

此参数通过groovy 脚本实现PLAYBOOK和TAG的联动。

在这里插入图片描述

通过"Referenced parameters" 可以设置关联的源参数。

在这里插入图片描述

经过以上设置就可以实现参数间的联动:

在这里插入图片描述

2.与ansbile关联

Jenkins通过"Ansible plugin"可以和ansible进行关联,当然也可以在不安装插件的情况下用shell实现。

在这里插入图片描述

由于我们使用普通用户执行操作,因此ansible在安装过程中需要通过-b参数进行提权

在这里插入图片描述

总结

通过jenkins + ansible 我们在图形化界面上助力了基础设施方面的建设,提升了操作友好性。另通过本次介绍,希望我们能了解到jenkins不只是在DevOps中才发挥其价值,在自动化建设方面也同样能出一份力。

在此我们并没有使用Jenkins pipeline,因为ansible playbook的编排一定程度上在操作系统级上都实现了。

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-08-14 14:33:10  更:2021-08-14 14:35:00 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/28 19:47:22-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计