一、Ansible安装
Ansible的安装方法主要有以下三种:
1、yum使用EPEL源安装
2、编译安装
3、Git 源码安装
4、pip安装
二、Ansible相关文件说明
1、配置文件
- /etc/ansible/ansible.cfg :主配置文件,配置ansible工作特性;
- /etc/ansible/hosts :主机清单文件,管理的目标主机地址清单;
- /etc/ansible/roles/ :存放角色的目录。
2、主配置文件介绍
以上只是一小部分关于default的相关配置,还有其他更多的配置这里暂时不一一列举。因为ansible的大部分参数都可以保持默认,无需更改。但是当你的被管理机器数量增加以后,建议将forks数量适当的调整。
温馨提示:由于Ansible不是一个服务,所以更改完配置后无无需进行重启操作(也没提供重启的操作方法),改完配置立即生效。
3、Inventory主机清单文件
主机清单文件,用大白话讲其实就是被整合在一个文件中的一组或者多组被管控的节点。默认情况下,该清单文件为:/etc/ansible/hosts,通常我们可能会根据项目需求,起一个见名知意的其他名称,或者也会直接在每一套我们需要组织的项目根目录下存放一个hosts的清单文件。
Inventory主机清单文件可以有多个,在使用plyabook时可以手动通过-i 参数指定你需要使用的清单文件名称。
Inventory文件遵循了ini配置文件的风格,一个section就表示一组隶属于同一个分组的被管理机器。目标被管理节点默认均被视为使用SSH的22端口,但是当部分节点使用非22端口号时,也可以在清单文件中进行指定。
被管理节点可以是以IP的形式写在清单文件中,也可以使用域名的形式。
三、实战演练
1、环境介绍
我这里包括ansible主控机和另外两个被管理机器。
2、Ansible相关命令工具
- /usr/bin/ansible 。
- /usr/bin/ansible-doc :查看配置文档,模块功能查看工具。
- /us/bin/ansible-galaxy:下载/上传优秀代码或Roles模块的自网平台。
- /usr/bin/ansible-playbook:定制自动化任务,编排剧本工具。
- /usr/bin/ansible-pull:远程执行命令的工具。
- /usr/bin/ansible-vault:文件加密工具。
- /usr/bin/ansible-console:基于Console界面与用户交互的执行工具。
以上命令,最常用的两个:ansible和ansible-playbook,这两个命令就是ansible用来实现批量管里的关键。
- ansible命令通常用于一次性或者临时的任务,一般一条命令即可实现任务。通常我们称这种方式为:ad-hoc;
- ansible-playbook主要是应用于针对大型项目的部署,需要通过多个yaml格式的文件(以yaml或者yml结尾)组合使用,所以一般需要进行提前规划目录,整合yaml文件。
接下来介绍几个比较常用的命令。
(1)ansible-doc
该命令主要用于显示针对某个模块的使用方法的帮助信息。如果忘记了模块或者模块的用法,可以通过该命令快速查看。
注意: 在使用ansible批量管理操作之前,需要先对所有主机做一个免密认证,以确保每个被管理节点都能在ansible管理节点上通过ssh协议免密登录到被管理节点。
免密的三种实现方式:
- 基于ssh-keygen + shell + sshpass`方法实现
- 基于expect实现;
- 基于ansible-playbook实现。
ad-hoc 方式常用参数说明:
- --version
- -m module
- -V
- --list-hosts
- -k,--ask-pass
- -C,--check
- -T,--timeout=TIMEOUT
- -u,--user=REMOTE_USER :执行远程执行的用户
- -b,--become
- --become-user=USERNAME :指定sudo的runas用户,默认为root
- -K,--ask-become-pass
通配符
逻辑或
逻辑与
逻辑非
正则
(2)ansible执行命令过程
- 加载自己的配置文件默认/etc/ansible/ansible.cfg,如果指定了你自定义的清单文件,则从自己的清单文件中查找被管理主机.
- 加载自己对应的模块文件,如:command。
- 通过ansible将模块或命令生成对应的临时py文件,并将该文件传输至远程服务器的对应执行用户$HOME/.ansible/tmp/ansible-tmp-数字/XXX.PY文件。
- 给文件+x执行。
- 执行并返回结果。
- 删除临时py文件,退出。
可以通过加参数 -v 或者 -vvv列出详细的执行过程(可以多加几个v参数)。
(3)ansible执行后颜色描述
默认情况下是以下三种颜色:
- 绿色:表示成功。
- 黄色:修改了远程文件后并执行成功。
- 红色:表示执行失败。
但是在ansible配置文件中可以定义颜色,如下:
(4)Ansible-playbook示例
(5)ansible-vault
该工具用于对yaml文件进行加解密,格式如下:
ansible是一个简单高效且很强大的工具,它的功能远不止于此。而那些不常用的命令工具,本文也暂不介绍。