Ansible hosts檔案
阿新 • • 發佈:2021-12-16
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
如果是祕鑰的,可以這種方式
[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
本文版權歸作者所有,歡迎轉載,請務必新增原文連結。