2017-04-18 54 views
0

我創建了一個允許更改用戶密碼的操作手冊。 這個支付簿將與詹金斯執行,我想設置密碼作爲工作的參數。ansible extra vars散列過濾器

任務/ main.yml

--- 
- name: "Change user password" 
    user: 
    name: "{{user_name}}" 
    password: "{{new_password}" 
    update_password: always 

默認/ main.yml

user_name: "{{user}}" 
password: "{{password}}" 
new_password: "{{ '"{{password}}"'|password_hash('sha512') }}" 

我想我的問題是「{{ ' 「{{密碼}}」' | password_hash(」 sha512')}}「。

我運行劇本:

ansible-playbook -e "user_name=<user>" -e "password=<best_password> -e "role=<role_name>" -e "server=<list_server>" main.yml 

謝謝您的幫助!

回答

0

password: "{{password}}"這是遞歸定義,這是不允許的。你爲什麼需要這個?

new_password: "{{ '"{{password}}"'|password_hash('sha512') }}"這是嵌套Jinja2表達式,這是不允許的。使用new_password: "{{ password | password_hash('sha512') }}"

+0

我希望能夠在額外的變量中設置密碼。 – xilmen

+0

這個表達式'new_password:「{{password | password_hash('sha512')}}''指的是變量'password'。如果您用'-e password = mypassword'調用playbook,則變量'new_password'將包含散列的「mypassword」字符串。 –

+0

我很高興,很多! – xilmen