簡體   English   中英

在ansible劇本中運行ansible-vault crypto_string

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM