Red Hat Training

A Red Hat training course is available for RHEL 8

83.2. 使用单个 Ansible 任务,确保多个服务在 IdM 客户端上的 IdM 中存在

您可以使用 ansible-freeipa ipaservice 模块,使用单个 Ansible 任务添加、修改和删除多个身份管理(IdM)服务。为此,请使用 ipaservice 模块的 services 选项。

使用 services 选项,您还可以指定多个仅应用到某个特定服务的服务变量。通过 name 变量定义此服务,这是 services 选项的唯一强制变量。

完成此流程,以使用单个任务确保 HTTP/client01.idm.example.com@IDM.EXAMPLE.COMftp/client02.idm.example.com@IDM.EXAMPLE.COM 服务在 IdM 中存在。

先决条件

  • 在控制节点上:

    • 您使用 Ansible 版本 2.14 或更高版本。
    • 您已安装 ansible-freeipa 软件包。
    • 您已在 ~/MyPlaybooks/ 目录中创建了一个具有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件
    • 您正在使用 RHEL 8.9 及更新版本。
    • 您已将 ipaadmin_password 存储在 secret.yml Ansible vault 中。

流程

  1. 使用以下内容创建您的 Ansible playbook 文件 add-http-and-ftp-services.yml

    ---
    - name: Playbook to add multiple services in a single task
      hosts: ipaserver
      vars_files:
      - /home/user_name/MyPlaybooks/secret.yml
    
      tasks:
      - name: Add HTTP and ftp services
        ipaservice:
          ipaadmin_password: "{{ ipaadmin_password }}"
          services:
          - name:  HTTP/client01.idm.example.com@IDM.EXAMPLE.COM
          - name: ftp/client02.idm.example.com@IDM.EXAMPLE.COM
  2. 运行 playbook:

    $ ansible-playbook --vault-password-file=password_file -v -i inventory add-http-and-ftp-services.yml