Ansible inventory(主機清單的靜態檔案)
阿新 • • 發佈:2018-12-28
剛開始的時候大概說了一下 inventory 是存放主機地址的一個檔案。現在我們詳細介紹它:
定義主機和組:
[ansible:children] #定義了一個ansible的組,下面包括了sunq 和 test的組
sunq
test
[sunq]
192.168.137.101
[test]
192.168.137.102
[test:vars]
ansible_ssh_port=22 #針對test組使用inventory內建變數,定義了ssh埠
還可以將這個inventory 檔案放在其他的地方:
新建一個docker的主機inventory
vim /root/ansible/docker
寫入以下檔案
[docker]
192.168.137.102
執行時候 加上 -i 呼叫這個檔案:
[[email protected] ansible]# ansible -i /root/ansible/docker all -m command -a 'uptime'
192.168.137.102 | SUCCESS | rc=0 >>
15:39:05 up 1:24, 2 users, load average: 0.00, 0.01, 0.05
還可以支援多個inventory列表:
例如 在剛才的目錄下 再新增多一個inventory檔案
vim /root/ansible/test
寫入內容:
[test] 192.168.137.101
先看一下ansible 的目錄結構:
[[email protected] ~]# tree ansible/
ansible/
├── docker
└── test
0 directories, 2 files
執行:
[[email protected] ~]# ansible -i /root/ansible/ all -m command -a 'uptime'
192.168.137.102 | SUCCESS | rc=0 >>
15:46:36 up 1:32, 2 users, load average: 0.00, 0.01, 0.05
192.168.137.101 | SUCCESS | rc=0 >>
15:46:58 up 1:32, 4 users, load average: 0.04, 0.04, 0.05
inventory內建引數:
ansible_ssh_host # 要連線的主機名
ansible_ssh_port # 埠號預設是22
ansible_ssh_user # ssh連線時預設使用的使用者名稱
ansible_ssh_pass # ssh連線時的密碼
ansible_sudo_pass # 使用sudo連線使用者是的密碼
ansible_ssh_private_key_file # 祕鑰檔案如果不想使用ssh-agent管理時可以使用此選項
ansible_shell_type # shell的型別預設sh
ansible_connection # SSH 連線的型別: local , ssh , paramiko在 ansible 1.2 之前預設是 paramiko ,後來智慧選擇,優先使用基於 ControlPersist 的 ssh (支援的前提)
ansible_python _ interpreter #用來指定 python 直譯器的路徑,同樣可以指定ruby 、perl 的路徑