можно ли задать пользователю вопрос «Да» и «Нет»? Я уверен, что он есть, но он мне нужен, чтобы установить пакет при ответе «да», а при «нет» просто пропустить пакет. Как это сделать эффективно? Спасибо.
Плейбуки Ansible не должны работать в интерактивном режиме.
Вы хотите использовать переменную для такого рода решений.
Можно задать вопрос пользователю во время запуска playbook. Использовать vars_prompt
.
---
- hosts: all
vars_prompt:
- name: username
prompt: "What is your username?"
private: no
- name: password
prompt: "What is your password?"
tasks:
- debug:
msg: 'Logging in as {{ username }}'
Пример с логическим значением:
---
- hosts: all
vars_prompt:
- name: install_apache
prompt: "Install Apache?"
private: no
tasks:
- apt:
name: apache2
state: present
when: install_apache
В зависимости от варианта использования этого конкретного примера может оказаться, что динамический инвентарь с конкретной определенной переменной - лучшее решение.
Я не согласен с этим каждый раз playbook должен не работать в интерактивном режиме. Пример с установкой пакета может быть не так актуален, потому что он строго связан с Инфраструктура как код, подходить.
У нас есть множество других случаи использования: