Product SiteDocumentation Site

Глава 25. Установка FreeIPA клиентов с помощью Ansible

25.1. Настройка параметров в inventory-файле
25.2. Playbook
25.3. Развертывание клиентов FreeIPA
25.4. Удаление клиента FreeIPA
Развертывание клиентов управляется ролью ipaclient. По умолчанию роль использует режим автообнаружения для идентификации серверов FreeIPA, домена и других параметров. Роль можно изменить, чтобы playbook Ansible использовал параметры указанные, например, в inventory-файле.

25.1. Настройка параметров в inventory-файле

В inventory-файле, например, inventory/hosts, необходимо указать:
  1. Полное имя узла (FQDN), который станет клиентом FreeIPA. Имя узла должно быть написано строчными буквами. Если записи SRV в зоне DNS FreeIPA установлены правильно, сценарий автоматически обнаружит все остальные требуемые значения.
  2. Пароль пользователя, уполномоченного регистрировать клиентов:
    • рекомендуется использовать Ansible Vault для хранения пароля и напрямую ссылаться на файл Vault из файла playbook, например:
      - name: Playbook to configure IPA clients with username/password
        hosts: ipaclients
        become: true
        vars_files:
        - playbook_sensitive_data.yml
      
        roles:
        - role: ipaclient
          state: present
      
    • можно указать пароль пользователя admin, используя параметр ipaadmin_password в разделе [ipaclients:vars] файла inventory/hosts (менее безопасно, чем предыдущий способ). Если нужно указать другого пользователя (не admin), следует использовать параметр ipaadmin_principal для указания имени пользователя, например:
      [...]
      [ipaclients:vars]
      ipaadmin_principal=my_admin
      ipaadmin_password=Secret123
      
      Пример Playbook, который использует principal и пароль из inventory-файла:
      - name: Playbook to configure IPA clients with username/password
        hosts: ipaclients
        become: true
      
        roles:
        - role: ipaclient
          state: present
      
    • client keytab из предыдущей регистрации, если он все ещё доступен. Этот параметр доступен, если система ранее уже была зарегистрирована как клиент FreeIPA. Чтобы использовать этот метод аутентификации, следует указать параметр ipaclient_keytab в разделе [ipaclients:vars] файла inventory/hosts, указав путь к файлу, в котором хранится keytab;

      Примечание

      Если в разделе [ipaclients:vars] указывается параметр ipaclient_keytab, то также должен быть указан параметр ipaadmin_keytab.
    • случайный одноразовый пароль (OTP), который будет сгенерирован во время регистрации. Чтобы использовать этот метод аутентификации, следует использовать опцию ipaclient_use_otp в разделе [ipaclients:vars] файла inventory/hosts. Одновременно с OTP также следует указать либо пароль пользователя, уполномоченного регистрировать клиентов (например, указав значение для ipaadmin_password), либо admin keytab (например, указав значение для ipaadmin_keytab).
  3. При невозможности автообнаружения параметров домена, в inventory-файле, необходимо также указать:
    • полное доменное имя сервера в разделе [ipaservers];
    • один из двух следующих параметров:
      • ipaclient_domain в разделе [ipaclients:vars] для указания DNS-имени FreeIPA, на котором будет зарегистрирован клиент;
      • ipaclient_realm в разделе [ipaclients:vars] для указания имени области Kerberos, контролируемой сервером FreeIPA.

Примечание

Для возможности использования одноразового пароля (OTP), на узле управления должен присутствовать /usr/bin/kinit.

Примечание

Установка клиентских пакетов по умолчанию включена. Если установка пакетов не требуется, необходимо установить переменную ipaclient_install_packages в значение no.
Пример inventory-файла:
[ipaclients]
comp01.example.test
comp02.example.test

[ipaservers]
ipa.example.test

[ipaclients:vars]
ipaclient_domain=example.test
ipaclient_realm=EXAMPLE.TEST
#ipaclient_use_otp=yes
ipaadmin_principal=admin
ipaadmin_password=12345678

Примечание

Дополнительные опции, принимаемые ролью ipaclient см. в /usr/share/ansible/roles/ipaclient/README.md.