Хороший способ преодолеть ошибку двоеточия без кавычек в файлах Ansible YAML

Кажется, что Ansible не может разобрать такие вещи, как:

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

          ^

Это выглядит легко исправить. Кажется, в строке есть лишнее двоеточие без кавычек, и это сбивает синтаксический анализатор. Он ожидал найти только одно свободное двоеточие. Решение состоит в том, чтобы просто добавить несколько кавычек вокруг двоеточия или указать всю строку после первого двоеточия.

Что было бы хорошим и чистым способом избежать этой ошибки?


person sorin    schedule 18.11.2015    source источник


Ответы (2)


Просто добавьте пробел после двоеточия. Как это:

  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_*"
}
person joksnet    schedule 18.11.2015

Может показаться глупым, но простой пробел после двоеточия решает проблему:

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