Ansible hosts文件


all關鍵字,可以操作多台機器,這里只填寫IP即可,他會用秘鑰進行操作,同時省略端口等默認信息。
ansible  all  -m ping

192.168.56.108
192.168.56.109

可以用[xx]方式給主機進行分組,但all還是清理里所有主機的意思

[one]
192.168.56.108

[two]
192.168.56.109

對於這種連續的地址,可以用更加簡潔的方式配置。這里注意到109是在2個組里的,這是允許的。別名是不重復的,IP可以重復。並且用all,只會執行一次109。

[one]
192.168.56.[108:109]

[two]
192.168.56.109

域名也是可以用這種方法進行配置

[one]
nginx-a-server
nginx-b-server

#可改為如下方式
[one]
nginx-[a:b]-server

一般對於主機分組是按照服務器功能進行划分,例如作為負載均衡的機器為1組,作為應用的tomcat機器為1組。但有時候需要某些組一起進行操作,例如安裝zabbix客戶端,這時候就可以用下列方法了。children的意思是在執行本組的時候,執行下列的組,而不是把下列當主機看待。

[nginx]
192.168.56.108

[tomcat]
192.168.56.109

[zabbix-agent:children]
nginx
tomcat

當前使用的是ini配置風格,ansible也可以讀取YAML風格的配置文件,不過太丑了,這里不進行贅述,有興趣可以查看ansible主機配置進行了解。

如果是秘鑰的,可以這種方式

[one]
192.168.56.[108:109] ansible_ssh_user=root

創建一個admin用戶,密碼654321,也做免密登陸,用這種方式,就可以隔開了。

[one]
one-1 ansible_ssh_host=192.168.56.108 ansible_ssh_user=root
one-2 ansible_ssh_host=192.168.56.109 ansible_ssh_user=root

[two]
two-1 ansible_ssh_host=192.168.56.108 ansible_ssh_user=admin
two-2 ansible_ssh_host=192.168.56.109 ansible_ssh_user=admin

這種方式不行,pwd查看還是admin的,主機名一樣,就給覆蓋了

[one]
192.168.56.[108:109] ansible_ssh_user=root

[two]
192.168.56.[108:109] ansible_ssh_user=admin

Ansible配置 指定單獨秘鑰管理

#ssh root@服務器B
#ssh-keygen 如果要重命名可以自己指定, 回車后生成密鑰對
# echo ~/.ssh/id_rsa.pub >> known_hosts 這里把生成的公鑰放入known_hosts
如果自己配置了ssh_config, 關閉了known_hosts, 可能就需要寫進~/.authorized_keys里面去了.
把服務器B上的私鑰回傳到ansible執行的服務器A的ssh_keys里, 命名為 
服務器B_ip_.key

給ssh_keys文件夾授權為700, 一定要700, 其它的都會報錯.

建立hosts文件里面指定server, 每個server一行.這里我測試就寫一行. 
[test_server] 
10.0.1.5 ansible_ssh_private_key_file=ssh_keys/10.0.1.5.key ansible_ssh_user=root


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM