将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"
}

由于库存中只有一项记录,结果不会改变。

广告
将在 10 秒后关闭
bannerAds