24.2. 使用 Ansible 将 secret 归档到 IdM 中的标准用户库中

按照以下流程,使用 Ansible playbook 将敏感信息存储在个人 vault 中。在使用的示例中,idm_user 用户在名为 my_vault 的库中归档含有名为 password.txt 的敏感信息的文件。

先决条件

  • 您已在 Ansible 控制器上安装了 ansible-freeipa 软件包,这是您在该流程中执行步骤的主机。
  • 您知道 idm_user 的密码。
  • idm_user 是所有者,或者至少是 my_vault 的成员用户。
  • 您可以访问 password.txt,这是要在 my_vault 中存档的机密。

流程

  1. 导航到 /usr/share/doc/ansible-freeipa/playbooks/vault 目录:

    $ cd /usr/share/doc/ansible-freeipa/playbooks/vault
  2. 打开清单文件,并确保 [ipaserver] 部分中列出了您要配置的 IdM 服务器。例如,要指示 Ansible 配置 server.idm.example.com,请输入:

    [ipaserver]
    server.idm.example.com
  3. 制作 data-archive-in-symmetric-vault.yml Ansible playbook 文件的副本,但将"symmetric"替换为 "standard"。例如:

    $ cp data-archive-in-symmetric-vault.yml data-archive-in-standard-vault-copy.yml
  4. 打开 data-archive-in-standard-vault-copy.yml 文件进行编辑。
  5. 通过在 ipavault 任务部分设置以下变量来调整文件:

    • ipaadmin_principal 变量设置为 idm_user
    • ipaadmin_password 变量设置为 idm_user 密码。
    • user 变量设置为 idm_user
    • name 变量设置为 my_vault
    • in 变量设置为包含敏感信息的文件的完整路径。
    • action 变量设置为 member

      对于当前示例为修改过的 Ansible playbook 文件:

    ---
    - name: Tests
      hosts: ipaserver
      gather_facts: false
    
      vars_files:
      - /home/user_name/MyPlaybooks/secret.yml
      tasks:
      - ipavault:
          ipaadmin_principal: idm_user
          ipaadmin_password: idm_user_password
          user: idm_user
          name: my_vault
          in: /usr/share/doc/ansible-freeipa/playbooks/vault/password.txt
          action: member
  6. 保存该文件。
  7. 运行 playbook:

    $ ansible-playbook --vault-password-file=password_file -v -i inventory.file data-archive-in-standard-vault-copy.yml