加载 YAML 文件时出错

Error while loading YAML file

我尝试运行这段代码

---
- hosts: my-host
  - vsphere_guest:
    vcenter_hostname: vcenter.mydomain.local
    username: myuser
    password: mypass
    guest: newvm001
    vmware_guest_facts: yes

但我一直收到此错误。

ERROR! Syntax Error while loading YAML.

错误似乎在 '/Users/Desktop/Ansible/createvms.yml':第 3 行,第 3 列, 但可能在文件的其他地方,具体取决于确切的语法 问题。

违规行似乎是:

- hosts: my-host
  - vsphere_guest:   ^ here

有人可以帮忙解释一下发生了什么吗

我可以试试。 :-) 当你写 - hosts: my-host 时,这会启动一个新列表,其中包含一个带有一个键值对的字典(hosts,它被设置为一个字符串值)。然后 YAML 解析器看到 - vsphere_guest: 缩进了一级并且不太确定如何处理它。它不能将它嵌套在 hosts 下,因为它已经设置为字符串。它不能开始一个新列表,因为它是缩进的。所以它失败了。

我想你真正想要的是这样的:

---
- hosts: my-host
  tasks:
    - vsphere_guest:
        vcenter_hostname: vcenter.mydomain.local
        username: myuser
        password: mypass
        guest: newvm001
        vmware_guest_facts: yes