3

我正在尝试找出最佳实践文件夹结构来组织我的 Vault 变量。

目前它看起来像这样:

.
├── group_vars/
│   ├── group1.yml
│   └── group2.yml
├── host_vars/
│   ├── host1.yml
│   └── host2.yml
├── roles/
│   └── .../
└── vault/
    ├── enc-file1.yml
    └── enc-file2.yml

但是,这样我总是必须include_vars在我的角色内部使用来获取特定的加密文件。

是否有任何我可以应用的命名约定和文件夹结构,Ansible 会像使用and一样自动获取正确的Vaulted变量?host_varsgroup_vars

我有这样的想法:

.
└── group_vars/
    ├── group1/
    │   ├── main.yml
    │   └── vault.yml
    └── group2/
        ├── main.yml
        └── vault.yml

有什么我可以做的,所以我不必明确包含保险库变量吗?

4

2 回答 2

3

有什么我可以做的,所以我不必明确包含保险库变量吗?

在最近的 Ansible 版本(自 2.3 起)中,您不需要为受保险库保护的变量包含单独的文件。相反,您可以在常规 vars 文件中加密单个变量 - 请参阅Single Encrypted Variable

Ansible 是否有任何命名约定和文件夹结构 [] 会自动获取正确的拱形变量 []?

不,没有约定也没有自动机制。

于 2017-03-28T07:15:57.857 回答
1

@cytopia,你的想法是有效的。

您可以在单独的文件中拆分加密/清除库存变量。Ansible 会整理出哪些是加密的,哪些不是。

我使用以下布局并且到目前为止没有任何问题(1.9.x - 2.2.1.0):

group_vars/
    all/
        clear
        secret
    group1/
        clear
        secret
    group2/
        clear
        secret
于 2017-03-28T12:27:06.187 回答