gpt4 book ai didi

使用 include_vars 的 Ansible Vault 和加密变量

转载 作者:行者123 更新时间:2023-12-05 02:15:40 25 4
gpt4 key购买 nike

我需要一个使用 ansible vault 存储和加密密码的文件,我创建了一个名为“passes”的加密文件,在解密后使用以下内容存储在 group_vars 中:

---
testvar: password

我已经创建了剧本文件:

---
- hosts: [machines]

vars:
include_vars:
file: group_vars/passes


roles:

- role: someroletodeployafilewiththispass

该角色仅使用来自模板的传递部署一个文件:

using vaulted var {{ testvar }}

每次我使用 tower 启动它时,我都会收到错误消息

"msg": "AnsibleUndefinedVariable: 'testvar' is undefined"

知道我做错了什么吗?没有迹象表明我的加密文件正在被 ansible 解密。还有我刚刚粘贴的加密文件:

$ANSIBLE_VAULT;1.1;AES256
303965366239313330646366313238...

也许加密文件看起来应该不同,以便 Ansible 解密它?

最佳答案

解释

在您的代码中,您创建了一个名为 include_vars 的变量,一个包含键 file 和字符串值 group_vars/passes 的字典。


解决方案

在 play 中定义 vars_files 的正确语法是 vars_files 声明:

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

您可以使用include_vars,但它是一个 Action 模块,应该在tasks下声明,或者在您的情况下(因为您希望它在之前执行) pre_tasks 中的角色):

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

关于使用 include_vars 的 Ansible Vault 和加密变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51523002/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com