我在使用 ansible 时遇到了问题。我尝试将虚拟机的本地主机名设置为 ansible 清单名称。
我的任务是这样的:
- name: set hostname to {{ inventory_hostname }}
hostname:
name:
- "{{inventory_hostname}}"
当我运行剧本时出现以下错误:
fatal: [sl-testvm101]: FAILED! => {"changed": false, "msg": "Command failed rc=1, out=, err=\u001b[0;1;31mCould not set property: Invalid hostname '['sl-testvm101']'\u001b[0m\n"}
目标主机是 ubuntu 20.04.1
任何想法?
答案1
name:
- "{{inventory_hostname}}"
这是一个 YAML 列表;有些地方您可以使用列表或字符串,但这不是其中之一。此参数仅接受单个字符串,因此您应该传递该字符串。否则,模块会尝试将主机名设置为列表的字符串表示形式,这不是有效的主机名,并且会失败。
name: "{{ inventory_hostname }}"