在 CentOS 7 中安装并使用自动化工具 Ansible
Ansible是一款为类Unix系统开发的自由开源的配置和自动化工具。它用Python写成，类似于Chef和Puppet，但是有一个不同和优点是我们不需要在节点中安装任何客户端。它使用SSH来和节点进行通信。  本篇中我们将在CentOS 7上安装并配置Ansible，并且尝试管理两个节点。   Ansible 服务端  ansible.linuxtechi.com ( 192.168.1.15 )   节点  192.168.1.9 , 192.168.1.10   第一步： 设置EPEL仓库 Ansible仓库默认不在yum仓库中，因此我们需要使用下面的命令启用epel仓库。 # rpm -iUvh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-r
Ansible
116.255.132.12
轻量级的一个应用、ssh互信做过，使用for 循环也能达到这个效果吧。
netb2c [Chrome 45.0|Windows 7]
2015-10-04T17:31:56.000
106.39.222.200
高手
flichote [Internet Explorer 9.0|Windows 7]
2015-10-05T22:08:26.000
114.94.209.50
你好，我做的 lacp team , 之前在centos 6/5 上面 可以使用‘ethtool bond0’ 可以看到 speed:2000Mb/s<br />
现在 centos7 使用由类似 命令可以看到 当前 Team 速率。
来自上海的 Firefox 41.0|Windows 10 用户
2015-10-14T21:20:29.000
115.55.13.248
请问，使用ssh-copy-id命令来复制Ansible公钥到节点中这一步执行的ssh-copy-id -i root@192.168.1.10；这里必须是用root吗？@后面跟的这个IP是什么IP呢？
来自河南商丘的 Chrome 88.0|Windows 10 用户
2021-03-13T17:53:12.000
Ansible是一款为类Unix系统开发的自由开源的配置和自动化工具。它用Python写成，类似于Chef和Puppet，但是有一个不同和优点是我们不需要在节点中安装任何客户端。它使用SSH来和节点进行通信。  本篇中我们将在CentOS 7上安装并配置Ansible，并且尝试管理两个节点。   Ansible 服务端  ansible.linuxtechi.com ( 192.168.1.15 )   节点  192.168.1.9 , 192.168.1.10   第一步： 设置EPEL仓库 Ansible仓库默认不在yum仓库中，因此我们需要使用下面的命令启用epel仓库。 # rpm -iUvh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-r
Ansible是一款为类Unix系统开发的自由开源的配置和自动化工具。它用Python写成，类似于Chef和Puppet，但是有一个不同和优点是我们不需要在节点中安装任何客户端。它使用SSH来和节点进行通信。


![](/data/attachment/album/201510/04/002341lmxtl0mzm9p4hj22.png)


本篇中我们将在CentOS 7上安装并配置Ansible，并且尝试管理两个节点。


* **Ansible 服务端** – ansible.linuxtechi.com ( 192.168.1.15 )
* **节点** – 192.168.1.9 , 192.168.1.10


### 第一步： 设置EPEL仓库


Ansible仓库默认不在yum仓库中，因此我们需要使用下面的命令启用epel仓库。



```
[root@ansible ~]# rpm -iUvh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm

```

### 第二步： 使用yum安装Ansible



```
[root@ansible ~]# yum install ansible

```

安装完成后，检查ansible版本：



```
[root@ansible ~]# ansible --version

```

![ansible-version](/data/attachment/album/201510/04/002401o8s2rwmm6rao2d2p.jpg)


### 第三步： 设置用于节点鉴权的SSH密钥


在Ansible服务端生成密钥，并且复制公钥到节点中。



```
root@ansible ~]# ssh-keygen

```

![ssh-keygen](/data/attachment/album/201510/04/002403t6i2z5hhh20ovefh.jpg)


使用ssh-copy-id命令来复制Ansible公钥到节点中。


![ssh-copy-id-command](/data/attachment/album/201510/04/002404sa190o5aett17xeo.jpg)


### 第四步：为Ansible定义节点的清单


文件 `/etc/ansible/hosts` 维护着Ansible中服务器的清单。



```
[root@ansible ~]# vi /etc/ansible/hosts
[test-servers]
192.168.1.9
192.168.1.10

```

保存并退出文件。


主机文件示例如下：


![ansible-host](/data/attachment/album/201510/04/002405stdkcztb84c8kytu.jpg)


### 第五步：尝试在Ansible服务端运行命令


使用ping检查‘test-servers’或者ansible节点的连通性。



```
[root@ansible ~]# ansible -m ping 'test-servers'

```

![ansible-ping](/data/attachment/album/201510/04/002405dzsr3jj1ees5jv59.jpg)


#### 执行shell命令


**例子1：检查Ansible节点的运行时间（uptime）**



```
[root@ansible ~]# ansible -m command -a "uptime" 'test-servers'

```

![ansible-uptime](/data/attachment/album/201510/04/002406dl835tsyweluy85j.jpg)


**例子2：检查节点的内核版本**



```
[root@ansible ~]# ansible -m command -a "uname -r" 'test-servers'

```

![kernel-version-ansible](/data/attachment/album/201510/04/002406dafqtu4brrfbnrfz.jpg)


**例子3：给节点增加用户**



```
[root@ansible ~]# ansible -m command -a "useradd mark" 'test-servers'
[root@ansible ~]# ansible -m command -a "grep mark /etc/passwd" 'test-servers'

```

![useradd-ansible](/data/attachment/album/201510/04/002407fenruzp5eqtb4nnh.jpg)


**例子4：重定向输出到文件中**



```
[root@ansible ~]# ansible -m command -a "df -Th" 'test-servers' > /tmp/command-output.txt

```

![redirecting-output-ansible](/data/attachment/album/201510/04/002410h0t9t018h11g1fam.jpg)




---


via: <http://www.linuxtechi.com/install-and-use-ansible-in-centos-7/>


作者：[Pradeep Kumar](http://www.linuxtechi.com/author/pradeep/) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)


本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出

