使用本地操作解密保险库加密的模板
你可以使用 local_action
模块运行依赖于保险库加密模板的游戏。
- name: Decrypt template
local_action: "shell {{ view_encrypted_file_cmd }} {{ role_path }}/templates/template.enc > {{ role_path }}/templates/template"
changed_when: False
- name: Deploy template
template:
src=templates/template
dest=/home/user/file
- name: Remove decrypted template
local_action: "file path={{ role_path }}/templates/template state=absent"
changed_when: False
请注意 changed_when: False
。如果你使用 ansible 角色运行幂等性测试,这一点很重要 - 否则每次运行 playbook 时都会发出更改信号。在 group_vars/all.yml
中,你可以设置全局解密命令以供重用,例如,作为 view_encrypted_file_cmd
。
group_vars / all.yml
view_encrypted_file_cmd: "ansible-vault --vault-password-file {{ lookup('env', 'ANSIBLE_VAULT_PASSWORD_FILE') }} view"
现在,在运行游戏时,你需要将 ANSIBLE_VAULT_PASSWORD_FILE
环境变量设置为指向你的保管库密码文件(理想情况下使用绝对路径)。