2016-08-25 2 views
0

Я использую возможность автоматизации развертывания проекта на машинах. В одном случае я использую опцию 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 вариант.

Вопрос:

Есть ли способ, чтобы прикрепить валидацию анзибля ожидают, что он будет просто подскажите в консоли что это неправильное значение и пользователь силы ввести правильное значение?

ответ

3

No, expect модуль не может сделать валидацию для вас.
Вы должны избегать любой интерактивности в ваших книжках.
Если вам необходимо проверить параметры, сделайте это вручную в самом начале вашего сборника пьес с assert:

- hosts: all 
    vars_prompt: 
    - name: "password" 
     prompt: "Password" 
     private: yes 
    pre_tasks: 
    - assert: 
     that: password | length > 6 
    roles: 
    - initdb 
+0

'' Вы должны избегать любой интерактивности в вашем playbooks.''. Не могли бы вы дать мне пример для ожидания использования? – turkus

+0

@turkus Я хочу избегать взаимодействия с пользователем (_force пользователь вводит правильное значение_). Ваш пример 'expect' в порядке, просто проверьте свои вары в самом начале, чтобы вы могли повторно запустить playbook. –

 Смежные вопросы

  • Нет связанных вопросов^_^