0
我使用ansible來自動化機器上的項目部署。在一個案例中,我使用了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
這對應用Django的初始化遷移後創建一個超級用戶。
現在讓我們去點:
當我運行這一點,有人會舉例來說太短密碼輸入,整個過程掛斷,我必須使用tags
選項再次運行。
問題:
有沒有辦法附加驗證,以ansible的預期將僅提示控制檯,它是不正確的值,並強制用戶鍵入正確的價值?
''你應該避免在playbooks.''任何交互。你能舉個例子來預期用法嗎? – turkus
@turkus我的意思是避免用戶交互(_force用戶輸入正確的值_)。你的'期望'例子是好的,只需在開始時驗證你的變數,這樣你就可以立即重新運行劇本。 –