Ansible额外的不带引号的冒号错误

时间:2016-01-07 19:35:32

标签: python yaml ansible

您好我在这里按照教程https://pynet.twb-tech.com/blog/ansible/ansible-cfg-template-p2.html

我的site.yml

+ "<p><button onclick=\"location.href='@(Url.Action("Edit", "Company"))?id=" + response.CompanyId + "'\">Edit</button>"

my tasks / main.yml

---
- name: Generate router configuration files
  hosts: localhost
  roles:
    - router

我的模板(router.j2)

---
- name: Generate configuration files
  template: src=router.j2 dest=/lib/python2.7/site-packages/ansible/RTR-TEMPLATE/{{item.hostname}}.txt
  with_items: testconfig

我的var(main.yml)

    no service pad
service tcp-keepalives-in
service tcp-keepalives-out
service timestamps debug datetime msec localtime show-timezone
service timestamps log datetime msec localtime show-timezone
service password-encryption
!
hostname {{item.hostname}}
{{item.example}}

!
boot-start-marker
boot-end-marker
!
logging buffered 32000
no logging console

当我运行这个时,我得到以下输出,我认为var格式存在问题。我不确定如何解决它

---
testconfig:
 -{hostname: router123, example: no ip cef}

注意:错误实际上可能出现在此位置之前:第3行,第32列

testconfig:   - {hostname:router123,例如:no ip cef}                                ^     这个看起来容易修复。行中似乎有一个额外的不带引号的冒号     这让解析器感到困惑。只期待找到一个免费的     结肠。解决方案只是在冒号周围添加一些引号,或引用     第一次结肠后的整行。

ERROR: Syntax Error while loading YAML script, /usr/lib/python2.7/site-packages/ansible/RTR-TEMPLATE/roles/router/vars/main.yml

1 个答案:

答案 0 :(得分:1)

我认为你错过了破折号和{之间的空格。只是猜测。

>>> class Player:
    X=23
    Y=32
    def foo(self):
        for i in ["X","Y"]:
            print i
            print getattr(self,i)


>>> a=Player()
>>> a.foo()
X
23
Y
32
>>>