搜索

第 5 章 准备您的环境以使用 Ansible playbook 管理 IdM

download PDF

作为管理身份管理(IdM)的系统管理员,在使用 Red Hat Ansible Engine 时,最好执行以下操作:

  • 在您的主目录中保留一个专用于 Ansible playbook 的子目录,如 ~/MyPlaybooks
  • /usr/share/doc/ansible-freeipa/*/usr/share/doc/rhel-system-roles/* 目录和子目录中的示例 Ansible playbook 复制到 ~/MyPlaybooks 目录中。
  • 将清单文件包含在 ~/MyPlaybooks 目录中。

使用这个实践,您可以在一个地方找到所有 playbook。

注意

您可以在受管节点上运行 ansible-freeipa playbook,而无需调用 root 特权。例外包括使用 ipaserveripareplicaipaclientipasmartcard_serveripasmartcard_clientipabackup ansible-freeipa 角色的 playbook。这些角色需要具有目录和 dnf 软件包管理器的特权访问权限。

Red Hat Enterprise Linux IdM 文档中的 playbook 假设以下 安全配置

  • IdM admin 是受管节点上的远程 Ansible 用户。
  • 您可以将 IdM admin 密码加密存储在 Ansible vault 中。
  • 您已将保护 Ansible vault 的密码放置在密码文件中。
  • 您阻止除本地 ansible 用户以外的任何人访问 vault 密码文件。
  • 您定期删除并重新创建 vault 密码文件。

还要考虑 其他安全配置

5.1. 使用 Ansible playbook 准备控制节点和受管节点以管理 IdM

按照以下流程创建 ~/MyPlaybooks 目录并进行配置,以便您可以使用它来存储和运行 Ansible playbook。

先决条件

  • 您已在受管节点上安装了 IdM 服务器server.idm.example.com replica.idm.example.com
  • 您已配置了 DNS 和网络,以便您可以直接从控制节点登录到受管节点server.idm.example.com replica.idm.example.com
  • 您知道 IdM 管理员 密码。

流程

  1. 进入 ~/MyPlaybooks/ 目录:

    $ cd ~/MyPlaybooks
  2. 使用以下内容创建 ~/MyPlaybooks/ansible.cfg 文件:

    [defaults]
    inventory = /home/your_username/MyPlaybooks/inventory
    remote_user = admin
  3. 使用以下内容创建 ~/MyPlaybooks/inventory 文件:

    [eu]
    server.idm.example.com
    
    [us]
    replica.idm.example.com
    
    [ipaserver:children]
    eu
    us

    此配置定义了两个主机组,即euus,用于这些位置中的主机。此外,此配置定义了 ipaserver 主机组,它包含来自 euus 的所有主机。

  4. [可选] 创建 SSH 公钥和私钥。要在测试环境中简化访问,请不要在私钥中设置密码:

    $ ssh-keygen
  5. 将 SSH 公钥复制到每个受管节点上的 IdM admin 帐户:

    $ ssh-copy-id admin@server.idm.example.com
    $ ssh-copy-id admin@replica.idm.example.com

    这些命令要求您输入 IdM admin 密码。

  6. 创建一个包含 vault 密码的 password_file 文件:

    redhat
  7. 更改权限以修改文件:

    $ chmod 0600 password_file
  8. 创建一个 secret.yml Ansible vault 来存储 IdM admin 密码:

    1. 配置 password_file 以存储 vault 密码:

      $ ansible-vault create --vault-password-file=password_file secret.yml
    2. 出现提示时,输入 secret.yml 文件的内容:

      ipaadmin_password: Secret123
注意

要在 playbook 中使用加密的 ipaadmin_password,您必须使用 vars_file 指令。例如,一个删除 IdM 用户的简单 playbook 如下所示:

---
- name: Playbook to handle users
  hosts: ipaserver

  vars_files:
  - /home/user_name/MyPlaybooks/secret.yml

  tasks:
  - name: Delete user robot
    ipauser:
      ipaadmin_password: "{{ ipaadmin_password }}"
      name: robot
      state: absent

在执行 playbook 时,通过添加 --vault-password-file=password_file 选项来指示 Ansible 使用 vault 密码来解密 ipaadmin_password。例如:

ansible-playbook -i inventory --vault-password-file=password_file del-user.yml
警告

为安全起见,在每次会话结束时删除 vault 密码文件,并在每个新会话开始时重复步骤 6-8。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.