加载YAML文件时出错

时间:2016-08-31 21:07:00

标签: yaml ansible ansible-playbook

我尝试运行这段代码

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

但我一直收到这个错误。

  
    

ERROR!加载YAML时出现语法错误。

  
     

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

     

违规行似乎是:

- hosts: my-host
  - vsphere_guest:   ^ here

有人可以帮助解释发生的事情

1 个答案:

答案 0 :(得分:3)

我可以试试。 :-)当你编写- hosts: my-host时,这将启动一个包含一个带有一个键值对(hosts的dict的新列表,它被设置为一个字符串值)。然后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