2

Ansible 1.9.2/1.9.4
的CentOS 6.7Ansible:ansible_domain或facter_domain - 如何獲得在庫存文件

在我invetory文件提到的主機名的域值,我有:

[zabbix_server] 
zabbix.dev-white.projectname.jenkins 

[some_other_zabbix_server] 
someotherzabbix.dev-blue.project.jenkins ansible_ssh_host=10.120.133.11 

當我運行:

ansible -m setup -i hosts zabbix.dev-white.projectname.jenkins 

它給了我下面的錯誤:

zabbix.dev-white.projectname.jenkins |失敗=>失敗:沒有可用的身份驗證方法

在我的手冊中,我試圖獲取zabbix服務器的域值,它是dev-white.projectname.jenkins。我嘗試了以下內容,但是顯示域值的變量是空白/空值,爲什麼?

注意: inventory_hostname的值顯示正確!但ansible_domain/facter_domain的域值將作爲空白/空值顯示。

- debug: msg="My server is= {{ hostvars[groups['zabbix_server'][0]].inventory_hostname }} and domain is= {{ hostvars[groups['zabbix_server'][0]].ansible_domain }} --- {{ hostvars[groups['zabbix_server'][0]]['inventory_hostname'] }} -- {{ hostvars[groups['zabbix_server'][0]]['ansible_domain'] }} -- -- {{ hostvars[groups['zabbix_server'][0]]['facter_domain'] }}" 

受審some_other_zabbix_server組變量(其中ansible_ssh_host變量被設置)上述代碼中,仍然沒有值來用於示出其結構域。 PS:ansible_ssh_host屬性將在較新的Ansible版本中被棄用。

回答

1

一種方法是拆分和連接除第一部分以外的所有部件。

- debug: var="{{ groups['zabbix_server'][0].split('.')[1:] | join('.') }}" 

結果:

"dev-white.projectname.jenkins"