0
私は、マシン上でのプロジェクトのデプロイを自動化するために使用しています。 1つのケースでは、私は有能な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
これは、Djangoの初期化移行を適用した後、スーパーユーザを作成するためです。
今の時点に行ってみましょう:私はこれを実行すると、誰かが例えば短すぎるパスワードを入力しますとき
、全体のプロセスがハングアップすると私はtags
オプションを使用してそれを再度実行する必要があります。
質問:
のは、それだけで、それは正しくない値と力のユーザーが正しい値を入力するのコンソールにプロンプトが表示されますことを期待ansibleする検証をアタッチする方法はありますか?
''あなたはplaybooks.''で任意の対話を避けるべきです。あなたは私にその時の使用を期待するための例を与えることができますか? – turkus
@turkus私はユーザーとのやりとりを避ける(_forceユーザーに正しい値を入力すること_)。あなたの 'expect'の例は大丈夫です。あなたのvarsを最初から検証するだけで、すぐにプレイブックを再実行することができます。 –