26.3. 使用 Ansible playbook,确保非 IdM 客户端上的 IdM 中存在 HTTP 服务

按照以下流程,使用 Ansible playbook 确保 HTTP 服务器在不是 IdM 客户端的主机上的 IdM 中存在。通过将 HTTP 服务器添加到 IdM ,您也将主机添加到了 IdM。

先决条件

  • 您在主机上 安装了 HTTP 服务
  • 您在其上设置了 HTTP 的主机不是 IdM 客户端。否则,请按照 将 HTTP 服务注册到 IdM 中的步骤进行操作
  • 您有 IdM 管理员密码。
  • 主机的 DNS A 记录 - 或 AAAA 记录(如果使用 IPv6)可用

流程

  1. 创建一个清单文件,如 inventory.file

    $ touch inventory.file
  2. 打开 inventory.file,并在 [ipaserver] 部分中定义您要配置的 IdM 服务器。例如,要指示 Ansible 配置 server.idm.example.com,请输入:

    [ipaserver]
    server.idm.example.com
  3. 生成 /usr/share/doc/ansible-freeipa/playbooks/service/service-is-present-without-host-check.yml Ansible playbook 文件的一个副本。例如:

    $ cp /usr/share/doc/ansible-freeipa/playbooks/service/service-is-present-without-host-check.yml /usr/share/doc/ansible-freeipa/playbooks/service/service-is-present-without-host-check-copy.yml
  4. 打开复制的文件 /usr/share/doc/ansible-freeipa/playbooks/service/service-is-present-without-host-check-copy.yml 进行编辑。找到 ipaservice 任务中 ipaadmin_passwordname 变量:

    ---
    - name: Playbook to manage IPA service.
      hosts: ipaserver
      gather_facts: false
    
      vars_files:
      - /home/user_name/MyPlaybooks/secret.yml
      tasks:
      # Ensure service is present
      - ipaservice:
          ipaadmin_password: "{{ ipaadmin_password }}"
          name: HTTP/www2.example.com
          skip_host_check: yes
  5. 修改文件:

    • ipaadmin_password 变量设置为 IdM 管理员密码。
    • name 变量设为在其上运行 HTTP 服务的主机的名称。
  6. 保存并退出文件。
  7. 运行 Ansible playbook。指定 playbook 文件、存储保护 secret.yml 文件的密码,以及清单文件:

    $ ansible-playbook --vault-password-file=password_file -v -i path_to_inventory_directory/inventory.file /usr/share/doc/ansible-freeipa/playbooks/service/service-is-present-without-host-check-copy.yml

验证步骤

  1. 以 IdM 管理员的身份登录到 IdM Web UI。
  2. 导航到 IdentityServices

现在,您可以看到 Services 列表中列出了 HTTP/client.idm.example.com@IDM.EXAMPLE.COM

其它资源