是否有人在直接调用剧本任务时遇到过"{{ 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)使用replace模块:
---
- 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"}发布于 2017-06-30 05:02:13
ansible_hostname是一个事实,您已经显式地禁用了收集事实(gather_facts: False),所以没有定义它。
把绳子移开。
https://stackoverflow.com/questions/44838690
复制相似问题