1. 程式人生 > >Ansible inventory(主機清單的靜態檔案)

Ansible inventory(主機清單的靜態檔案)

Ansible inventory(主機清單的靜態檔案)

剛開始的時候大概說了一下 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 的路徑