天天看點

主機群組

主機與組 

/etc/ansible/hosts 檔案的格式與windows的in配置檔案類似:

node2:/root/.ssh#cat  /etc/ansible/hosts
[webservers]
192.168.137.2
115.236.19.4:9998

node2:/root#ansible all -m ping 
192.168.137.2 | SUCCESS => {
    "changed": false, 
    "ping": "pong"
}
115.236.19.4 | SUCCESS => {
    "changed": false, 
    "ping": "pong"
}

方括号[]中是組名,用于對系統進行分類,便于對不同系統進行個别的管理。


一個系統可以屬于不同的組,比如一台伺服器可以同時屬于webserver組合dbserver組。

這時屬于兩個組的變量都可以為這台主機所用

如果有主機的SSH端口不是标準22端口,可在主機名之後加上端口号,用冒号分隔.SSH配置檔案中列出的端口号

不會在paramiko連接配接中使用,會在openssh連接配接中使用

端口号不是預設設定時,可明确的表示為:

badwolf.example.com:5309

假設你有一些靜态IP位址,希望設定一些别名,但不是在系統的host檔案中設定,

又或者你是通過隧道在連接配接,那麼可以設定如下:

對于每一個host,你還可以選擇連接配接類型和連接配接使用者名:

node2:/root#cat /etc/ansible/hosts
[webservers]
192.168.137.2
115.236.19.4:9998
[app01]
120.26.224.164 ansible_connection=ssh        ansible_ssh_user=oracle

node2:/root#ansible -i /etc/ansible/hosts app01 -m shell -a "hostname"
120.26.224.164 | FAILED | rc=-1 >>
using -c ssh on certain older ssh versions may not support ControlPersist, set ANSIBLE_SSH_ARGS="" (or ssh_args in [ssh_connection] section of the config file) before running again

You have mail in /var/spool/mail/root

node2:/root#ansible -i /etc/ansible/hosts app01 -m shell -a "hostname"
120.26.224.164 | SUCCESS | rc=0 >>
oadb

所有以上的對于inventory檔案的設定一種速記法,後面我們會讨論如何将這些設定儲存為
'host_vars' 目錄中的獨立檔案


主機變量 


分檔案定義Host和Group 變量 

在inventory主檔案中儲存所有的變量并不是最佳的方式。 還可以儲存在獨立的檔案中,這些獨立檔案與

inventory檔案保持關聯。

假設inventory 檔案的路徑為:

/etc/ansible/hosts

假設有一個主機名為'foosball',主機同時屬于兩個組,一個是'raleigh';另一個是'webservers'.

那麼以下配置檔案(YAML格式)中的變量可以為'fooball'主機所用,依次為'raleigh'的組變量;

webservers的組變量,'foosball'的主機變量:      
上一篇: 增加swap大小
下一篇: 增加swap大小