开源运维自动化工具 Ansible 详解

Ansible是来越来越火的一款开源运维自动化工具,通过Ansible可以实现运维自动化,提高运维工程师的工作效率,减少人为失误。Ansible通过本身集成的非常丰富的模块可以实现各种管理任务,其自带模块超过上千个。更为重要的是,它操作非常简单,即使小白也可以轻松上手,但它提供的功能又非常丰富,在运维领域,几乎可以做任何事。

1、Ansible特点

Ansible自2012年发布以来,很快在全球流行,其特点如下:

二、Ansible的角色

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

Ansible工具集:Ansible可以实现的功能?

作用对象:Ansible可以影响哪些主机?

1、使用者

如下图所示:Ansible使用者可以采用多种方式和Ansible交互,图中展示了四种方式:

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

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

Ad-Hoc命令集:Users直接通过Ad-Hoc命令集调用Ansible工具集来完成任务;

Playbooks:Users预先编写好Ansible Playbooks,通过执行
Playbooks中预先编排好的任务集,按序执行任务;

简单聊一聊Ansible自动化运维

2、Ansible工具集

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

Ansible Playbooks:任务脚本,编排定义Ansible任务及的配置文件,由Ansible按序依次执行,通常是JSON格式的YML文件;

Inventory:Ansible管理主机清单;

Modules:Ansible执行命令功能模块,多数为内置的核心模块,也可自定义;

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

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

Ansible:该部分图中表现得不太明显,组合Inventory、API、Modules、Plugins可以理解为是Ansible命令工具,其为核心执行工具;

3、作用对象

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

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

三、Ansible的配置 1、Ansible安装

Ansible的安装部署非常简单,以RPM安装为例,其依赖软件只有Python和SSH,且系统默认均已安装。Ansible的管理端只能是Linux,如RedHat、Debian、CentOS

1)通过YUM安装Ansible

可以自行从互联网上直接下载Ansible所需软件包,本篇博客提供安装Ansible自动化运维工具所需的依赖软件包,网盘链接:[链接: https://pan.baidu.com/s/1nM78wzunjjf6qwZb2vMLQw  提取码:  见本文评论部分 ])
如果使用本人提供的网盘链接,自己建立yum配置文件,挂载光盘这些就不说了啊,毕竟太基础了!使用互联网直接安装即可(实验环境我这里是关闭防火墙和SELinux的)。

[root@centos01 ~]# cd /mnt/ansiblerepo/ansiblerepo/repodata/ [root@centos01 ansiblerepo]# vim /etc/yum.repos.d/local.repo [local] name=centos baseurl=file:///mnt/ansiblerepo/ansiblerepo <!--修改yum路径--> enabled=1 gpgcheck=0 [root@centos01 ~]# yum -y install ansible <!--安装Ansible自动化运维工具--> 2)验证安装结果 [root@centos01 ~]# ansible --version <!--如果命令可以正常执行,则表示Ansible工具安装成功--> ansible 2.3.1.0 config file = /etc/ansible/ansible.cfg configured module search path = Default w/o overrides python version = 2.7.5 (default, Nov 6 2016, 00:28:07) [GCC 4.8.5 20150623 (Red Hat 4.8.5-11)] 3)创建SSH免交互登录

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/83f828c48821a1020ae3d9c1d6ed245b.html