因此,我正在部署一个小型3节点群集,并且需要将我的清单中定义的公共IP地址添加到所有节点的所有/ etc / hosts文件中。 我试图使用以下,但它给我一个错误:
- name: Add IP address of all hosts to all hosts lineinfile: dest: /etc/hosts line: '{{ hostvars[item]["ansible_host"] }} {{ hostvars[item]["ansible_hostname"] }} {{ hostvars[item]["ansible_nodename"] }}' state: present with_items: groups['all']
错误是:
致命:[app1.domain.com]:失败! => {“failed”:true,“msg”:“field'args'有一个无效的值,其中包含一个未定义的variables,错误是:'ansible.vars.hostvars.HostVars object'属性u \“groups ['all'] \”\ n \ n错误似乎在'/Users/k/Projects/Ansible/roles/common/tasks/main.yml'中:第29行,第3列根据确切的语法问题,可能会在文件的其他地方出现。\ n \ n违规行显示为:\ n \ n \ n-名称:将所有主机的IP地址添加到所有主机\ n这里\ n“}
我不知道发生了什么事。 我对Ansible还是一个新鲜的东西,直到现在,我的进步都很开心。 任何想法,我失踪?
看起来你的语法错误 你也使用什么版本的软件? variables名称可能不同。 在2.2
版本上,这对我有用:
- name: Add IP address of all hosts to all hosts lineinfile: dest: /etc/hosts line: "{{ hostvars[item].ansible_host }} {{ hostvars[item].inventory_hostname }} {{ hostvars[item].inventory_hostname_short }}" state: present with_items: "{{ groups.all }}"