2017-03-27 75 views
0

有沒有方法在Ansible劇本中作爲變量訪問保險庫密碼?我期待這樣的事情:變量中的Ansible Vault密碼

--- 

debug: var=ansible_vault_password 
+1

看起來像試圖竊取保險庫密碼。 –

+0

我想在服務器上設置合理的拉動。該服務器需要知道保險庫密碼。所以我想用這個變量的內容在服務器上創建一個文件。上面的代碼只是我想訪問的變量名稱的一個例子。 – Thomas

+0

爲此,您需要訪問提供給Ansible Vault的密碼?真? – techraf

回答

1

我最終通過將本地保管庫密碼文件複製到服務器來解決此問題。做到這一點的任務看起來像這樣:

- name: setup ansible vault password file 
    copy: 
    src: /path/to/local/vault_pass 
    dest: /root/.vault_pass 
    mode: 0600 
    owner: root 
    group: root 

然後是root用戶將執行ansible-pull命令。

+0

我們並沒有那麼做,因爲/ path/to/local/vault_pass會在源代碼控制以及其他所有Ansible配置中結束。這會挫敗使用Vault的目的。 但似乎沒有好的方法來做到這一點,除了已經在服務器上的文件中有保險庫密碼。因此,我們已將密碼文件「預先部署」到用於創建所有虛擬機的模板。不理想,但它的工作原理。 – hillsy

+1

在我們的例子中''vault_pass'文件通過忽略文件被從存儲庫中排除。 – Thomas

0

嘗試保存密碼到不同的文件,並使用「vars_files」,包括密碼。例如:

在Password.yml:

ansible_vault_password: redhat 

在Playbook.yml:

Host: xyz 

vars_files: password.yml 

tasks: 

    debug: 

     var: "{{ ansible_vault_password }}" 

試試這個,請讓我知道。

+0

什麼是「* diff文件*」? – techraf

+0

我在這裏的意思是不同的文件。 (單獨的文件).. –