一、安装:

$ sudo apt-get install ansible

二、配置:

a、基本配置

$ cd /etc/ansible/

$ sudo cp hosts hosts_back 备份一个副本并定义自己的管理组

$ sudo ssh-keygen -t rsa -P ''

b、查看密匙及检查权限

$ ll .ssh/

$ ll -d .ssh/

c、复制密匙到目标主机

$ ssh-copy-id -i .ssh/id_rsa.pub uname@ip 默认端口为22

$ ssh-copy-id -i .ssh/id_rsa.pub "-p 24 uname@ip" 指定端口

@后面跟的是远程机器的ip

@前面的用户名 表示你是把自己创建的公钥传递到对端电脑的那个用户家目录下面

三、测试使用:

$ ansible groupname -a 'date' 数据某组上所有目标机器的当前时间

报错:

ip| FAILED => FAILED: ssh uname@ip:22 : Private key file is encrypted

To connect as a different user, use -u <username>.

分析问题:原来系统默认会以当期系统的当前用户来登录远程主机,而当前系统的用户根本在目标机器上不一定存在,安提示再测试;

$ ansible -u name host -m 'ping' 用username指定某一目标主机

ip | success >> {

"changed": false,

"ping": "pong"

}

经过测试能成功,于是想到修改hosts里的组的目标主机

[test]

ip ansible_ssh_port=port1 ansible_ssh_host=ip1 ansible_ssh_user=username1

ip ansible_ssh_port=port2 ansible_ssh_host=ip2 ansible_ssh_user=username2

ip ansible_ssh_port=port3 ansible_ssh_host=ip3 ansible_ssh_user=username3

$ ansible test -m 'ping' 测试组里的目标主机

测试通过,一切正常~~~