小白到运维工程师的自学之路 第五十四集 (ansible自动化运维工具)

一、概述

Ansible是一种开源的自动化工具,用于自动化任务的执行、配置管理和应用部署。它采用基于Python编写的简单、轻量级的语法,可以通过SSH协议远程管理和配置多台计算机。

Ansible的主要特点包括:

1、简单易用:设计简单,语法清晰,无需特殊培训即可上手使用。

2、基于模块化的架构:使用各种内置和第三方的插件和模块,可以轻松地扩展功能。

3、配置管理:可以管理各种操作系统、网络设备和云平台等的配置。

4、任务自动化:可以自动执行各种任务,如软件安装、服务启停等。

5、基于剧本(Playbook)的自动化:可以编写剧本来定义一系列任务和配置,实现复杂的自动化流程。

6、可扩展性:可以与其他工具和平台集成,如监控系统、版本控制工具等。

二、工作原理

Ansible的工作原理基于以下几个核心概念:

1、控制节点(Control Node):控制节点是指安装了Ansible的机器,可以是任何一台可以访问到被管理节点的计算机。在控制节点上,管理员可以编写Ansible的配置文件和剧本,然后使用Ansible命令行工具来执行这些任务。

2、主机清单(Inventory):主机清单是一个文本文件,用于定义被管理节点的主机列表和相关的配置信息。其中可以包含主机名、IP地址、SSH连接信息等。管理员可以根据需要在主机清单中组织和分类主机。

3、模块(Modules):模块是Ansible的核心组成部分,用于执行特定的任务。Ansible自带了众多内置模块,如文件操作、软件包管理、服务管理等。管理员可以通过在剧本中使用模块来指定需要执行的任务,并传递参数。

4、剧本(Playbook):剧本是一个定义了一系列任务和配置的YAML格式文件。通过剧本,管理员可以描述需要在被管理节点上执行的操作。剧本由一个或多个Play组成,每个Play包含了一组任务和要操作的主机列表。

5、执行流程:管理员在控制节点上编写好剧本,然后使用Ansible命令行工具执行剧本。当执行命令时,Ansible会首先与被管理节点建立SSH连接,然后将剧本分发到被管理节点上,并在每个节点上按照剧本定义的任务进行执行。执行完成后,Ansible会将执行结果返回到控制节点。

三、ansible的应用

Ansible没有客户端,也不需要在被管理主机添加任何代理程序,通过SSH完成底层通信,而SSH在Linux的发型版本中默认已经安装并启用,而在Windows系统下则依赖于PowerShell,Ansible要求管理端必须是Linux系统,在管理节点通过应用模块将指令发送到被管理主机上,并在执行完毕后自动删除产生的临时文件,根据Ansible使用过程中不同角色,可将其分为三个部分。

1、使用者如何使用Ansible实现自动化运维?

2、Ansible的工具集,Ansible可以实现的功能?

3、作用对象,Ansible可以影响哪些主机?

四、ansible的使用者

1、CMDB:CMDB系统存储和管理着企业IT架构中的各种配置信息,是构建ITL项目核心工具,运维人员可以组合CMDB和Ansible,通过CMDB直接下发指令调用Ansible工具完成操作者所希望达到的目标。

2、PUBLIC/PRIVATE方式,Ansible除了丰富的内置模块外,同时提供丰富的API语言接口,如PHP,Pythone,PERL等多种流行语言,基于PUBLIC/PRIVATE,Ansible以API调用的方式运行。

3、Ad-Hoc命令集,Users直接通过Ad-Hoc命令集调用Ansible工具来完成工作。

4、Playbooks:Users预先编写好Ansible Playbooks,通过执行Playbooks中预先编排好的任务集按序执行命令。

五、ansible的工具集合

Ansible工具集合了inventory,Moudles,Plugins和API。其中,inventory用来管理设备列表,可以通过分组(不同的业务)实现,对组的调用直接影响组内所有的主机;Moudles是各种执行模块,几乎所有的管理任务都是通过模块来执行的;Plugins提供了各种附加功能;API为编程人员提供了一个调用接口,可以做Ansible的二次开发具体表现如下:

1、Ansible Playbook:任务脚本,编排定义Ansible任务集的配置文件,由Ansible按序依次执行,通常是JSON格式的YML/YAML文件;

2、inventory:Ansible管理主机清单

3、Moudle:Ansible执行命令功能模块,多数为内置的核心模块也可以用户自定义;

4、Plugins:模块功能的补充,如连接类型插件,循环插件,变量插件,过滤插件等,该功能不常用。

5、API:提供第三方程序调用的应用程序编程接口;

六、作用对象

Ansible的作用对象不仅仅是Linux和非Linux操作系统的主机,也可以作用于各类PUBLIC/PRIVATE,商业和非商业设备的网络设施。

使用者使用Ansible或Ansible-playbooks时,在服务器终端输入Ansible的Ad-Hoc命令集或playbooks后,Ansible会遵循预先定义安排的规则将Playbooks逐步拆解为Play,再将Play组织成Ansible可以识别的任务,随后调用任务涉及的所有模板和插件,根据inventory中自定义的主机列表通过SSH将任务集以临时文件或命令的形式传输给远程客户端执行并返回执行结果,如果是临时文件则执行完毕后自动删除。

七、准备工作

1、准备三台或多台服务器

2、三台主机关闭防火墙

3、三台主机互相通联

4、三台主机互相配置ssh免密登录

八、安装部署

三台主机都安装ansible
yum -y install ansible 

修改主机的配置文件

vim /etc/ansible/hosts
到最后一行插入
[syh]               组名
192.168.77.111      成员ip
192.168.77.115      成员ip

ok这样ansible就配置完成了

九、ansible的使用

ansible命令格式:ansible  要执行命令的组  -m  要使用的模块  -[选项]   指定模块参数

在ansible中有3000多个模块,ansible通过模块来控制组中的成员执行命令,修改文件内容,安装软件等这里只写几个常用的模块

配置完成后测试
ansible -i /etc/ansible/hosts  syh -m  ping
这里-i选项表示inventory 默认为/etc/ansi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值