克服Ansible YAML文件中无引号冒号错误的好方法

克服Ansible YAML文件中无引号冒号错误的好方法,yaml,ansible,ansible-playbook,Yaml,Ansible,Ansible Playbook,Ansible似乎无法解析以下内容: with_items: - { regexp:'^AcceptEnv\s', line:'AcceptEnv LANG LC_* P4* GIT_* HGUSER RD_*' } ^ 这个看起来很容易修理。似乎有一个额外的不带引号的冒号 这会让解析器感到困惑。它只是希望 找到一个空冒号。解决方法就是在标题周围加上一些引号 冒号,或在第一个冒号后引用整行 有什么好的、干净的方法可以避免这个错误 只需在冒号后添加一个空格即可。像

Ansible似乎无法解析以下内容:

 with_items:
    - { regexp:'^AcceptEnv\s', line:'AcceptEnv LANG LC_* P4* GIT_* HGUSER RD_*' }

          ^
这个看起来很容易修理。似乎有一个额外的不带引号的冒号 这会让解析器感到困惑。它只是希望 找到一个空冒号。解决方法就是在标题周围加上一些引号 冒号,或在第一个冒号后引用整行


有什么好的、干净的方法可以避免这个错误

只需在冒号后添加一个空格即可。像这样:

  with_items:
    - { regexp: '^AcceptEnv\s', line: 'AcceptEnv LANG LC_* P4* GIT_* HGUSER RD_*' }
调试将输出:

ok: [default] => (item={'regexp': '^AcceptEnv\\s', 'line': 'AcceptEnv LANG LC_* P4* GIT_* HGUSER RD_*'}) => {
    "item": {
        "line": "AcceptEnv LANG LC_* P4* GIT_* HGUSER RD_*", 
        "regexp": "^AcceptEnv\\s"
    }, 
    "msg": "^AcceptEnv\\s=AcceptEnv LANG LC_* P4* GIT_* HGUSER RD_*"
}

听起来可能很傻,但冒号后的空格可以解决问题:

- { regexp: '^AcceptEnv\s', line: 'AcceptEnv LANG LC_* P4* GIT_* HGUSER RD_*' }