簡體   English   中英

Ansible Vault和使用include_vars加密的變量

[英]Ansible Vault and encrypted variables using include_vars

我需要有一個使用ansible保管庫存儲和加密密碼的文件,我在解密后創建了一個名為'passes'的加密文件,存儲在group_vars中,具有以下內容:

---
testvar: password

我已經創建了劇本文件:

---
- hosts: [machines]

  vars:
    include_vars: 
      file: group_vars/passes


  roles: 

  - role: someroletodeployafilewiththispass

該角色只是通過模板傳遞一個文件,即:

using vaulted var {{ testvar }}

每次我使用塔啟動此程序時,都會收到錯誤消息

“ msg”:“ AnsibleUndefinedVariable:'testvar'未定義”

有什么想法我做錯了嗎? 沒有跡象表明ansible可以解密我的加密文件。 我剛剛粘貼的加密文件:

$ANSIBLE_VAULT;1.1;AES256
303965366239313330646366313238...

也許加密的文件應該看起來不同,所以Ansible會對其進行解密?

說明

在代碼中,您創建了一個名為include_vars的變量,這是一個包含密鑰file和字符串值group_vars/passes的字典。


在播放中定義vars_files的正確語法是vars_files聲明:

---
- hosts: [machines]
  vars_files:
    - group_vars/passes
  roles: 
    - someroletodeployafilewiththispass

您可以使用include_vars ,但是它是一個動作模塊,應該在tasks下聲明,或者在您的情況下(因為您希望在角色之前執行它)在pre_taskspre_tasks

---
- hosts: [machines]
  pre_tasks:
    - include_vars: 
        file: group_vars/passes
  roles: 
    - someroletodeployafilewiththispass

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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