ansible的安裝
一、安裝ansible
1、 python版本需要2.6以上,不過通過centos7都會默認安裝上python2.7.5,查看方法:python -V
2、 添加yum 源
a、 vim /etc/yum.repos.d/ansible
b、 添加如下內容:
[epel]
name = all source for ansible
baseurl = https://mirrors.aliyun.com/epel/7/x86_64/
enabled = 1
gpgcheck = 0
[ansible]
name = all source for ansible
baseurl = http://mirrors.aliyun.com/centos/7.3.1611/os/x86_64/
enabled = 1
gpgcheck = 0
3、 yum clean all
4、 安裝ansible:yum install ansible -y
二、配置ansible
1、 使用ansible前需實現ansible服務器對另外兩臺機的ssh無密碼訪問,操作如下:
a、 輸入命令:ssh-keygen,一直按回車,直至完成操作;
b、 命令:ssh-copy-id [email protected] ,然後輸入連接密碼即可實現無密碼訪問,另外一臺機的設置方式一樣,不再贅述。
2、 添加ansible客戶機組,命令:vim /etc/ansible/hosts,在最後面添加如下內容:
[group1]
192.168.1.10
192.168.1.23
出現如下問題:
在ansible安裝完畢後一般需要以SSH的方式連接到需要進行管理的目標主機,一開始遇到了如下問題:
192.168.1.10 | UNREACHABLE! => {
"changed": false,
"msg": "Failed to connect to the host via ssh: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).\r\n",
"unreachable": true
}
192.168.1.23 | UNREACHABLE! => {
"changed": false,
"msg": "Failed to connect to the host via ssh: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).\r\n",
"unreachable": true
1:管理節點生成SSH-KEY
#ssh-keygen
成功後在~/.ssh/路徑下將生成ssh密鑰文件:id_rsa及id_rsa.pub
2:添加目標節點的SSH認證信息
#ssh-copy-id root@目標節點IP
這裏root是在目標節點上登錄的用戶,@符號後面接目標節點IP即可,之後會提示輸入目標節點root用戶密碼,輸入即可。
添加認證信息後,目標節點主機的~/.ssh/目錄下將會出現一個authorized_keys文件,裏面包含了ansible管理節點的公鑰信息,可以檢查一下是否存在。
3:在確定目標主機的SSH認證信息都已正確添加且目標主機的~/.ssh/目錄都存在管理節點的公鑰信息後,再執行之前出錯的ansible ping指令:
對之前未連接的主機進行連結時報錯如下:
[root@puppet ~]# ansible webservers -m command -a ‘ls ~‘ -k
SSH password:
120.76.25.191 | FAILED | rc=0 >>
Using a SSH password instead of a key is not possible because Host Key checking is enabled and sshpass does not support this. Please add this host‘s fingerprint to your known_hosts file to manage this host.
解決步驟:
修改ansible.cfg文件
vi /etc/ansible/ansible.cfg
找到以下行,讓host_key_checking=False這行生效
# uncomment this to disable SSH key host checking
host_key_checking = False
三、使用ansible
1、 在另外兩臺機上執行ping命令:ansible group1 -m ping
2、 復制本機文件到組group1:ansible group1 -m copy -a “src=/etc/hosts dest=/etc/”
3、 幫group1安裝軟件:ansible group1 -m shell -a “yum install wget -y”
ansible的安裝