CentOS7.5 下 Ansible 2.7.0-1.el7 架构的安装,配置,管理


环境:CentOS7.5 (CentOS Linux release 7.5.1804 (Core))
CentOS7.5 下 Ansible 2.7.0-1.el7 架构的安装,配置,管理


YUM方式安装Ansible 2.7.0-1.el7


epel版本: epel-release-7-11

yum install epel-release

ansible版本2.7.0-1.el7

yum install ansible

查看安装完成后生成哪些文件和目录

rpm -ql ansible-2.7.0-1.el7

查看ansible版本和重要文件的位置

ansible --version
CentOS7.5 下 Ansible 2.7.0-1.el7 架构的安装,配置,管理


Ansible的7个指令
每个指令的含义请自行百度

ansible、ansible-doc、ansible-galaxy、ansible-lint、ansible-playbook、ansible-pull、ansible-vault

CentOS7.5 下 Ansible 2.7.0-1.el7 架构的安装,配置,管理


Ansible 的基本架构

CentOS7.5 下 Ansible 2.7.0-1.el7 架构的安装,配置,管理


Ansible有两种执行模式

1、ad-hoc:单个模块,单条命令的批量执行,称之为ad-hoc
2、playbook:这个可以理解成为面向对象的编程,就像上面举例那样可以把多个想要执行的任务放到一个playbook中,当然多个任务在事物逻辑上最好是有上下联系的。通过多个任务可以完成一个总体的目标,这就是playbook。


Ad-Hoc 执行格式

Ad-Hoc 是指ansible下临时执行的一条命令,并且不需要保存的命令,对于复杂的命令后面会讲用playbook。讲到Ad-hoc 就要提到模块,所有的命令执行都要依赖于事先写好的模块,默认安装好的ansible里面已经自带了很多模块,如:command、raw、shell、file、cron等,具体可以通过ansible-doc -l 进行查看 。

ansible命令的常用选项:

-m MODULE_NAME:指定要执行的模块的名称,如果不指定-m选项,默认是COMMAND模块。
-a MODULE_ARGS,:指定执行模块对应的参数选项。
-k:提示输入SSH登录的密码而不是基于密钥的验证
-K:用于输入执行su或sudo操作时需要的认证密码。
-b:表示提升权限操作。
--become-method:指定提升权限的方法,常用的有 sudo和su,默认是sudo。
--become-user:指定执行 sudo或su命令时要切换到哪个用户下,默认是root用户。
-B SECONDS:后台运行超时时间
-C:测试一下会改变什么内容,不会真正去执行,主要用来测试一些可能发生的变化
-f FORKS,:设置ansible并行的任务数。默认值是5
-i INVENTORY: 指定主机清单文件的路径,默认为/etc/ansible/hosts。。


一个ad-hoc命令的执行,需要按以下格式进行执行

ansible 主机或组 -m 模块名 -a '模块参数' ansible参数
主机和组:是在/etc/ansible/hosts 里进行指定的部分,当然动态Inventory使用的是脚本从外部应用里获取的主机。
模块名:可以通过ansible-doc -l 查看目前安装的模块,默认不指定时,使用的是command模块,具体可以查看/etc/ansible/ansible.cfg 的“#module_name = command ” 部分,默认模块可以在该配置文件中进行修改;
模块参数:可以通过 “ansible-doc 模块名” 查看具体的用法及后面的参数;
ansible参数:可以通过ansible命令的帮忙信息里查看到,这里有很多参数可以供选择,如是否需要输入密码、是否sudo等。

重要的方法:
查看内置模块列表

ansible-doc -l

查看具体模块的用法, 可以了解该模块的书写格式和相关参数选项,有举例

ansible-doc 模块名称

++++++++++++++++++++++++++++++++
常用模块

ansible-doc command


Ansible的重要文件
CentOS7.5 下 Ansible 2.7.0-1.el7 架构的安装,配置,管理


Ansible中文权威指南
http://www.ansible.com.cn