代码之家  ›  专栏  ›  技术社区  ›  user7995721

{{ansible\u hostname}}直接用ansible 2.3调用时不工作

  •  2
  • user7995721  · 技术社区  · 7 年前

    是否有人面临以下问题 "{{ ansible_hostname }}"

    请建议是否有其他方法可以做到这一点,或者如果我在这里做错了什么,我已经尝试了这两种方法 lineinfile & replace

    ---
    - name: Playbook to Install CollectD
      hosts: servercast01
      gather_facts: False
      remote_user: root
      become: true
      tasks:
      - name: Replacing hostname entry
        lineinfile:
          dest: "/tmp/collectd/etc/collectd.conf"
          regexp: '#Hostname  "myvm01"'
          line: 'Hostname  "{{ ansible_hostname }}"'
    

    2) 与 代替

    ---
    - name: Playbook to Install CollectD
      hosts: servercast01
      gather_facts: False
      remote_user: root
      become: true
      tasks:
      - name: Replacing hostname entry
        replace:
          dest: /tmp/collectd/etc/collectd.conf
          regexp: '#Hostname  "myvm01"'
          replace: 'Hostname  "{{ ansible_hostname }}"'
          backup: yes
    

    下面是执行剧本时的错误。。

    fatal: [servercast01]: FAILED! => {"failed": true, "msg": "the field 'args' has an invalid value, which appears to include a variable that is undefined. The error was: 'ansible_hostname' is undefined\n\nThe error appears to have been in '/etc/ansible/lineinfile3.yml': line 10, column 5, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n  tasks:\n  - name: Replacing hostname entry\n    ^ here\n"}
    
    1 回复  |  直到 7 年前
        1
  •  16
  •   techraf    7 年前

    ansible_hostname gather_facts: False ),因此没有定义。