Ansible:Ansible\u域或facter\u域-如何获取清单文件中提到的主机名的域值

Ansible:Ansible\u域或facter\u域-如何获取清单文件中提到的主机名的域值,ansible,ansible-playbook,ansible-2.x,domain-name,ansible-facts,Ansible,Ansible Playbook,Ansible 2.x,Domain Name,Ansible Facts,Ansible 1.9.2/1.9.4 CentOS 6.7 在我的投资档案中,我有: [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.pr

Ansible 1.9.2/1.9.4
CentOS 6.7

在我的投资档案中,我有:

[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 | FAILED=>失败:没有可用的身份验证方法

在我的剧本中,我试图获得zabbix服务器的域值,即dev-white.projectname.jenkins。我尝试了以下变量,但用于显示域值为空/空,为什么

注意:库存值\u主机名显示正确!!但是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'] }}"

为某些其他服务器组变量(其中设置了ansible\u ssh\u主机变量)尝试了上述代码,但仍然没有显示其域的值PS:ansible\u ssh\u主机属性在较新的ansible版本中将被弃用。

一种方法是拆分并连接除第一部分以外的所有部分

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

  "dev-white.projectname.jenkins"

无需加入,只需使用
.split('.',1)[1]