Я использую возможность автоматизации развертывания проекта на машинах. В одном случае я использую опцию ansible expect
.Использование валидации с переменными ожидаемой переменной
у меня в:
# initdb.yml
- hosts: all
vars_prompt:
- name: "username"
prompt: "Username"
private: no
- name: "email"
prompt: "Email"
private: no
- name: "password"
prompt: "Password"
private: yes
roles:
- initdb
и:
# roles/.../main.yml
- expect:
echo: yes
command: 'env/bin/python manage.py createsuperuser'
timeout: 5
responses:
'Username .*': '{{ username }}'
'Email .*': '{{ email }}'
'Password': '{{ password }}'
'Password (again)': '{{ password }}'
args:
chdir: '{{ repo.path }}'
tags:
- superuser
Это для создания суперпользователя после применения Джанго инициализации миграции.
Теперь давайте перейдем к точке:
Когда я запускаю это и кто-то будет ввести, например, слишком короткий пароль, весь процесс зависает, и я должен запустить его снова, используя tags
вариант.
Вопрос:
Есть ли способ, чтобы прикрепить валидацию анзибля ожидают, что он будет просто подскажите в консоли что это неправильное значение и пользователь силы ввести правильное значение?
'' Вы должны избегать любой интерактивности в вашем playbooks.''. Не могли бы вы дать мне пример для ожидания использования? – turkus
@turkus Я хочу избегать взаимодействия с пользователем (_force пользователь вводит правильное значение_). Ваш пример 'expect' в порядке, просто проверьте свои вары в самом начале, чтобы вы могли повторно запустить playbook. –