У меня есть «vars_prompt» настройки для опции «check_mode»:анзибль быстрое и check_mode
---
- name: Test check_mode from prompt
hosts: localhost
vars_prompt:
- name: "check_mode"
prompt: "Check mode: yes(default)=check-only, no=execute commands"
private: no
default: true
tasks:
- name: msg="False test | {{ check_mode }}"
debug: var=check_mode
when: not check_mode
- name: msg="True test | {{ check_mode }}"
debug: var=check_mode
when: check_mode
Когда я бегу пьес (ansible-playbook -i myhosts test.yml
) и ответить true
или false
тесты работают, как и ожидалось, но когда я использовать «да» и «нет» (как http://docs.ansible.com/ansible/playbooks_checkmode.html документ упоминает), я получаю эту ошибку:
The conditional check 'check_mode' failed. The error was: error
while evaluating conditional (check_mode): 'no' is undefined
Является ли это ошибка в документе, или в том, как я использую переменную check_mode
в when
? Мне показалось, что true/yes и false/no были автоматически обработаны.
Чтобы быть более конкретным: 'да/no' и другие (' у | Y | да | да | да | п | N | нет | No | NO | true | True | TRUE | false | False | FALSE | on | On | ON | off | Off | OFF') «преобразуются» процессором YAML. –
@ dan_linder, к сожалению, эта техника заставляет вас загрязнять код с помощью '| bool' всюду, поскольку базовая переменная' check_mode' не имеет тип bool. – Alkaline