pka*_*mol 5 security encryption ansible ansible-vault
我使用以下结构将我的内容host_vars分为明文和加密
ansible\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 ansible.cfg\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 host_vars\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 host1\n\xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 vars\n\xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 vault\n\xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 host2\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 vars\n\xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 vault\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 inventory\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 site.yaml\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 vars\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 ansible_vars.yaml\nRun Code Online (Sandbox Code Playgroud)\n有没有一种方法,ansible-vault可以用来加密两个指定的文件vault,还是我必须一一加密它们?
只是问一下,因为还会有更多内容,例如在未来的目录group_vars中等。
我知道这有效
\nansible-vault encrypt host_vars/host1/vault host_vars/host2/vault\nRun Code Online (Sandbox Code Playgroud)\n只是询问是否有更优雅/快速的解决方案
\nshell 扩展提供了很多可能性。
以下是您的案例中可能会感兴趣的两个内容:
*扩展,用作通配符。这意味着它host_vars/*/vault会匹配两者host_vars/host1/vault,但host_vars/host2/vault将来也会匹配任何其他。host_vars/*/vault则只会匹配一个文件夹级别(例如,它不会匹配host_vars/level1/host1/vault),但可以使用双星号(实际上名为globstar)来实现多个文件夹级别:host_vars/**/vault, 将匹配
host_vars/host1/vault以及host_vars/level1/host1/vaultRedHat[1..5]可以Ubuntu[1..5]通过Debian[1..5]仅定位 Debian 和 RedHat 发行版host_vars/{Ubuntu*,RedHat*}/vault。host_vars/{Ubuntu{1..3},RedHat{1..3}}/vault,或者通过host_vars/*{1..3}/vault作为一个更实际的例子,如果您通过 Ansible 处理 SE,并且想要加密文件,*.stackexchange.com但stackoverflow.com不加密superuser.com或任何其他具有特定域名的问答,假设主机被命名为其 DNS 名称,您可以这样做
ansible-vault host_vars/{stackoverflow.com,*.stackexchange.com}/vault
Run Code Online (Sandbox Code Playgroud)