一、Ansible 概述
Ansible 是近年来越来越火的一款开源运维自动化工具,通过Ansible可以实现运维自动化,提高运维工程师的工作效率,减少重复性工作和人为失误。
Ansible 通过本身集成的非常丰富的模块可以实现各种管理任务,其自带模块超过上千个。更为重要的是,它操作非常简单,但它提供的功能又非常丰富,在运维领域,几乎可以做任何事。
1、Ansible 特点
Ansible 自 2012 年发布以来,很快在全球流行,其特点如下:
- 基于 Python 开发,运维工程师对其二次开发相对比较容易,支持API及自定义模块,可通过Python轻松扩展;
- 丰富的内置模块,几乎可以满足一切要求;
- 管理模式非常简单,一条命令可以影响上千台主机;
- 无客户端模式,底层通过 SSH 通信;
2、Ansible 工具集
- Inventory:用来管理设备列表,可以通过分组实现,对组的调用直接影响组内的所有主机;
- Modules:是各种执行模块,几乎所有的管理任务都是通过模块执行的;
- Plugins:提供了各种附加功能;
- API:为编程人员提供一个接口,可以基于此做 Ansible的二次开发;
3、作用对象
Ansible 的作用对象不仅仅是 Linux 和非 Linux 操作系统的主机,也可以作用于各类PUBLIC/PRIVATE、商业和非商业设备的网络设施。
使用者使用 Ansible 或 Ansible-Playbooks 时,在服务器终端输入 Ansible 的 Ad-Hoc命令集或 Playbooks 后,Ansible 会遵循预选安排的规则将 Playbooks 逐步拆解为Play,再将 Play 组织成 Ansible 可以识别的任务,随后调用任务涉及的所有模块和插件,根据 Inventory 中定义的主机列表通过 SSH 将任务集以临时文件或命令的形式传输到远程客户端执行并返回执行结果,如果是临时文件则执行完毕后自动删除。
二、安装
1、安装命令
yum install -y epel-release
yum install -y ansible
2、命令参数
通过ansible --help
查看相关的参数及帮助信息:
参数解释:
- -v -vv -vvv -vvvv 输出的详细程度
- -i 指定了主机文件,如果不指定,则默认为/etc/ansible/hosts文件,在主机文件中,定义了Ansible要控制的主机IP或域名,及其用户、密码等
- -f 表示指定开启同步进程的个数
- -m 表示Ansible要调用的模块
- -a 表示模块的参数
- -k 表示Ansible使用的SSH密码
- -sudo 表示使用Ansible获得sudo权限
- -u 表示指定Ansible执行的用户
- -C 表示命令测试
3、模块功能
通过命令ansible-doc -l
查看模块列表。
该图左边是模块名称,右边是模块对应的功能描述,可通过命令ansible-doc -s 【模块名】
查看指定模块的详细描述: