【问题标题】:How does Ansible determine which vault to use when there are multiple vaults?当有多个 Vault 时,Ansible 如何确定使用哪个 Vault?
【发布时间】:2022-10-21 04:07:07
【问题描述】:

我已经浏览了网络和 ansible 文档,但我无法找到这个问题的答案。

说结构如下:

./playbooks/foo.yml
./hosts/HOST_NAME(包含特定主机的 IP)
./hosts/host_vars/HOST_NAME/vault1
./hosts/host_vars/HOST_NAME/vault2

当我运行命令时:

ansible-playbook -i hosts/HOST_NAME playbooks/foo.yml

  1. 默认情况下 ansible 会使用 vault1 还是 vault2?
  2. 如果它在两者中查找,如果两个 Vault 都定义了相同的变量会发生什么?那是:
    • vault1 -> 用户名:user1
    • Vault2 -> 用户名:user2
  3. 如果它同时查找,如果其中一个保管库解密失败,命令是否会失败?

【问题讨论】:

    标签: ansible


    【解决方案1】:

    Q1:“Ansible 会默认使用 vault1 还是 vault2?”

    答:两者都有。在排序顺序中。


    问题二:“如果两个 Vault 都定义了相同的变量会怎样?”

    A:最后一个获胜。


    问题 3:“如果其中一个保险库解密失败,命令会失败吗?”

    答:是的。


    示例:给定树

    shell> tree ../test-915
    ../test-915
    ├── ansible.cfg
    ├── hosts
    ├── host_vars
    │   └── test_11
    │       ├── vault1
    │       └── vault2
    └── pb.yml
    

    未加密的保险库

    shell> cat host_vars/test_11/vault1 
    username: user1
    key1: val1
    shell> cat host_vars/test_11/vault2
    username: user2
    key2: val2
    

    和剧本

    shell> cat pb.yml 
    - hosts: test_11
      tasks:
        - debug:
            msg: |
              username: {{ username }}
              key1: {{ key1 }}
              key2: {{ key2 }}
    

    shell> ansible-playbook pb.yml 
    
    PLAY [test_11] **********************************************************************************
    
    TASK [debug] ************************************************************************************
    ok: [test_11] => 
      msg: |-
        username: user2
        key1: val1
        key2: val2
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-08
      • 1970-01-01
      相关资源
      最近更新 更多