[英]Run ansible-vault encrypt_string in ansible playbook
我在Rundeck有一份工作,要求用戶將數據庫密碼傳遞給ansible。 並且ansible將其作為一個額外的變量。
ansible-playbook test.yml -e "password=123"
但是,我們希望在運行時對密碼進行存儲,但要遵循 ansible的最佳做法 。 他們將要求密碼存儲在文件中。 並使用ansible-vault創建存儲整個文件。
由於我們要傳遞大量密碼,因此我注意到有一個函數調用crypto_string。 我嘗試在劇本中調用它,並嘗試動態生成保險庫密碼,但是下面出現錯誤:
“錯誤!只能使用一個--vault-id進行加密。這包括來自配置和cli的密碼。”
這是我的劇本test.yml :
---
- name: test
hosts: localhost
tasks:
- name: vault var
command: ansible-vault encrypt_string "{{ password }}" --vault-password-file ~/.vault_pass.txt
register: var
- name: variable
set_fact:
mypass: var
- name: test encrypt_string
debug:
msg: "{{ mypass }}"
我不確定這是否是正確的做法/最佳做法,任何人都可以有所啟發將不勝感激。
謝謝,
您可以通過刪除選項--vault-password-file
來更新任務,因為ansible似乎通過某種方式從您的環境中獲取/讀取了它。
... ... - name: test hosts: localhost tasks: - name: vault var command: ansible-vault encrypt_string "{{ password }}" register: var ... ...
如果您希望將此選項保留在劇本中,則可能需要查找ansible從何處讀取它。 Ansible可能正在從其默認配置文件中讀取它,該文件通常位於~/.ansible.cfg
[查找vault_password_file
]或alias
或其他位置。
您可以在Ansible Vault文檔中找到帶有示例的更多詳細信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.