#ansible
Вопрос:
У меня есть случай, когда мне нужно передать аргумент, в котором есть знак равенства:
- name: install virtualenv
pip:
state: present
name: mypackage
virtualenv_python: /usr/bin/python3.6
virtualenv: "{{ perfdash_tools_venv_path }}"
extra_args: "--extra-index-url=https://myrepo"
Ансибл думает, что я пытаюсь сделать стиль k=v:
ERROR! conflicting action statements: template, trigger
The error appears to be in 'tasks/main.yml': line 10, column 43, but may
be elsewhere in the file depending on the exact syntax problem.
The offending line appears to be:
extra_args: "--extra-index-url=https://myrepo"
^ here
There appears to be both 'k=v' shorthand syntax and YAML in this task. Only one syntax may be used.
!unsafe
похоже, в данном случае это неприменимо.
(Да, сейчас я могу использовать пробелы, но это не всегда возможно.)
Комментарии:
1. Я не могу воспроизвести это. Попробуйте немного перенять пример (отбросить
perfdash_tools_venv_path
и преобразовать в полноценную игру).
Ответ №1:
Вы можете экранировать символы, используя {{ }}
вокруг него.
В вашем случае {{'='}}
избежит знака равенства.
Вот как должен выглядеть ваш сборник пьес:
- name: install virtualenv
pip:
state: present
name: mypackage
virtualenv_python: /usr/bin/python3.6
virtualenv: "{{ perfdash_tools_venv_path }}"
extra_args: "--extra-index-url{{'='}}https://myrepo"