1. 步骤:安装 Ansible

在安装 ansible 之前,我们需要使用以下命令添加 EPEL 存储库

[jack@onitroad ~]# sudo rpm -ivh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-8.noarch.rpm
[jack@onitroad ~]#sudo yum -y update

安装 EPEL 存储库并更新系统后,让我们使用以下命令安装 ansible

[jack@onitroad ~]# sudo yum install ansible -y

2. 步骤:创建 Ansible 控制账户

要通过 SSH 连接到服务器,我们需要在 Ansible 服务器控制器和我们需要管理的服务器中创建一个 ansible 控制帐户。

在本实验中,我们将在所有三台服务器上创建一个名为“ansadm”的帐户,并具有 sudo 权限

[jack@onitroad ~]# adduser -d /home/ansadm -m ansadm
[jack@onitroad ~]# passwd ansadm
Changing password for user ansadm.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
[jack@onitroad ~]# chage -E -1 ansadm
[jack@onitroad ~]# echo "ansadm  ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers

3.调整/etc/hosts文件的步骤

如果你不使用 DNS Server,你可以在 /etc/hosts 文件中映射远程服务器的 IP 地址和主机名

[jack@onitroad ~]# cat >> /etc/hosts << END
#MY VM WEB SERVERS
192.168.1.10	ansible 	mgmt.yallalab.com	ansible.yallalab.com
192.168.1.11	web01	web01.yallalab.com
192.168.1.12	web02	web02.yallalab.com
192.168.1.13	web03	web03.yallalab.com
192.168.1.14	web04	web04.yallalab.com
192.168.1.15	web05	web05.yallalab.com
END

5. 为 Ansible 控制帐户配置基于 SSH 密钥的身份验证的步骤

如我们所知,Ansible 使用 SSH 连接到将要管理的服务器,要配置 SSH 密钥身份验证,我们需要在 ansible 管理服务器上生成一个 SSH 密钥对。

为此,我们将使用一个名为 ssh-keygen 的特殊实用程序

[jack@onitroad ~]# ssh-keygen -t rsa

我们应该在 /homeansadm/.ssh/目录中看到两个新文件,下一步是将公钥复制到远程服务器中帐户 ansadm 的主目录,为此我们将使用 ssh-copy-id

[jack@onitroad ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub web01
[jack@onitroad ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub web02

完成所有步骤后,我们可以开始运行一些命令来检查一切是否正常。

Ansible 附带了许多模块(称为“模块库”),可以直接在远程主机上或者通过 Playbook 执行。

[jack@onitroad ~]$ansible --version
ansible 2.2.0.0
  config file = /home/ansadm/ansible.cfg
  configured module search path = Default w/o overrides

在这个例子中,我们将使用 ping 模块:

[jack@onitroad ~]$ansible webservers1 -m ping
web02 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}
web01 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}

实验室环境:

在本实验中,我们将使用 3 台 CentOS 7 服务器机器

Ansible 服务器控制器:* 主机名:ansible.onitroad.com

  • IP 地址:192.168.1.10

WebServer01:* 主机名:web01.onitroad.com

  • IP 地址:192.168.1.11

WebServer02:* 主机名:web02.onitroad.com

  • IP 地址:192.168.1.12
Ansible入门

Ansible 是一个类似于 Chef、Puppet 的 IT 配置管理、部署和编排的开源工具,非常简单易用,因为它使用 SSH 连接到服务器并运行配置的任务,而不是使用代理。

4. 步骤创建库存文件

Ansible 有一个默认的列表文件,用于定义它将管理的服务器称为 /etc/ansible/hosts 。
但是在本实验中,我们将在 ansible 控制用户 ansadm 的主目录下创建一个名为 inventory.ini 的新文件,我们将其中添加一组我们所有的网络服务器。

[jack@onitroad ~]# su - ansadm
[jack@onitroad ~]# vi inventory.ini

添加以下几行:

[webservers1]
web01
web02

[webservers2]
web04
web05

现在我们需要通知 ansible 在哪里可以找到我们的新列表文件,我们将在用户 ansadm 的主目录下创建一个新的 ansible 文件配置。

[jack@onitroad ~]# vi ansible.cfg

添加以下几行:

[defaults]
inventory       = /home/ansadm/inventory.ini
日期:2020-06-02 22:18:58 来源:oir作者:oir