在 CentOS 7 中安装并使用自动化工具 Ansible

Pradeep Kumar 的头像

·

·

·

16,803 次阅读

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仓库。

[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

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

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

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

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

ssh-copy-id-command

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

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

[root@ansible ~]# vi /etc/ansible/hosts

[test-servers]

192.168.1.9 192.168.1.10

保存并退出文件。

主机文件示例如下:

ansible-host

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

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

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

执行shell命令

例子1:检查Ansible节点的运行时间(uptime)

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

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

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

例子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

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

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

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

作者:Pradeep Kumar 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

4 条回复

  1. netb2c [Chrome 45.0|Windows 7] 的头像
    netb2c [Chrome 45.0|Windows 7]

    轻量级的一个应用、ssh互信做过,使用for 循环也能达到这个效果吧。

    来自郑州
  2. flichote [Internet Explorer 9.0|Windows 7] 的头像
    flichote [Internet Explorer 9.0|Windows 7]

    高手

    来自北京
  3. 来自上海的 Firefox 41.0|Windows 10 用户 的头像
    来自上海的 Firefox 41.0|Windows 10 用户

    你好,我做的 lacp team , 之前在centos 6/5 上面 可以使用‘ethtool bond0’ 可以看到 speed:2000Mb/s
    现在 centos7 使用由类似 命令可以看到 当前 Team 速率。

    来自上海
  4. 来自河南商丘的 Chrome 88.0|Windows 10 用户 的头像
    来自河南商丘的 Chrome 88.0|Windows 10 用户

    请问,使用ssh-copy-id命令来复制Ansible公钥到节点中这一步执行的ssh-copy-id -i root@192.168.1.10;这里必须是用root吗?@后面跟的这个IP是什么IP呢?

    来自商丘

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注