[英]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_tasks
中pre_tasks
:
---
- hosts: [machines]
pre_tasks:
- include_vars:
file: group_vars/passes
roles:
- someroletodeployafilewiththispass
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.