将Ansible安装到CentOS 7中
确认安装要求
考虑到Ansible需要Python 2.6+,请确认一下您的要求。
$ python --version
Python 2.7.5
安装
由于Ansible是从EPEL仓库安装的,所以在EPEL仓库未安装的情况下,需要先安装EPEL仓库。
$ sudo yum -y install epel-release
安装 Ansible。
$ sudo yum -y install ansible
检查Ansible的版本。
$ ansible --version
ansible 2.1.1.0
config file = /etc/ansible/ansible.cfg
configured module search path = Default w/o overrides
轻松地完成了安装。
Ansible的主要构成要素
- インベントリ(inventory)
清单是记录连接信息的配置管理目标节点的工具。
默认情况下,清单位置在/etc/ansible/hosts,但也可以通过设置环境变量ANSIBLE_HOSTS或使用-i选项来指定清单文件的路径。
- モジュール(module)
模块是用于创建用户和复制文件等操作的工具,大多数模块具有幂等性。通常情况下,只需使用基本模块就可以完成大部分任务。您还可以自己创建模块。模块也可以通过-m选项单独执行。
- プレイブック(playbook)
Playbook 是由多个模块组合而成的,描述了构建 WEB 服务器或构建数据库服务器等步骤。我们也会确保其具备幂等性。
你好,世界。
使用-m选项在本地主机上执行ping模块。
$ ansible -m ping localhost
[WARNING]: provided hosts list is empty, only localhost is available
localhost | SUCCESS => {
"changed": false,
"ping": "pong"
}
库存定义
因为库存为空时会出现令人讨厌的警告,所以我们先定义一个名为localhost的节点。
$ echo "localhost ansible_host=127.0.0.1 ansible_connection=local" > hosts
Ansible通常使用SSH进行连接。如果在清单中写入ansible_connection=local,或者使用–connection local选项,则可以在本地执行而无需使用SSH。
使用-i选项指定清单文件hosts,并使用-m选项在localhost节点上执行ping模块。
$ ansible -i hosts -m ping localhost
localhost | SUCCESS => {
"changed": false,
"ping": "pong"
}
是的,没有警告弹出了。
在所有节点上运行ping模块。
使用-i选项将hosts指定为库存,使用-m选项执行ping模块并在库存中列出的所有节点上运行。
$ ansible -i hosts -m ping all
localhost | SUCCESS => {
"changed": false,
"ping": "pong"
}
由于库存中只有一项记录,结果不会改变。