freeipa_client
freeipa_client
Эта роль устанавливает и настраивает FreeIPA Client в соответствии с вашими потребностями.
В комбинации с
freeipa
(Github) возможно (и протестировано) использование freeipa_client
с последней версией FreeIPA на Debian 9.4 и Ubuntu >= 18.04 (ознакомьтесь с разделом примеров).
Требования
Для этой роли требуется Ansible 2.5.0 или выше.
Вы можете просто использовать pip для установки (и определения) стабильной версии:
pip install ansible==2.7.9
Все требования к платформе перечислены в файле метаданных.
Чтобы правильно установить эту роль, необходимо, чтобы вы могли связываться по необходимым портам с FreeIPA Server (Github Repo).
Установка
ansible-galaxy install timorunge.freeipa_client
Переменные роли
Необходимо установить следующие переменные, чтобы эта роль заработала (без настройки). У этих переменных нет значений по умолчанию:
# Основной DNS домен развертывания IPA
# Тип: Строка
freeipa_client_domain: example.com
# Имя хоста этой машины (FQDN)
# Тип: Строка
freeipa_client_fqdn: srv-1-eu-central-1.example.com
# Пароль для присоединения к IPA области
# Тип: Строка
freeipa_client_password: Passw0rd
# Принципал для использования при присоединении к IPA области
# Тип: Строка
freeipa_client_principal: admin
# Имя Kerberos области развертывания IPA
# Тип: Строка
freeipa_client_realm: EXAMPLE.COM
# FQDN IPA сервера
# Тип: Строка
freeipa_client_server: ipa.example.com
Переменные, которые могут быть переданы этой роли, и их краткое описание:
# Базовая команда для установки FreeIPA
# Тип: Строка
freeipa_client_install_base_command: ipa-client-install --unattended
# Параметры установки FreeIPA по умолчанию
# Тип: Список
freeipa_client_install_options:
- "--domain={{ freeipa_client_domain }}"
- "--server={{ freeipa_client_server }}"
- "--realm={{ freeipa_client_realm }}"
- "--principal={{ freeipa_client_principal }}"
- "--password={{ freeipa_client_password }}"
- "--mkhomedir"
- "--hostname={{ freeipa_client_fqdn }}"
- "--force-join"
Примеры
Чтобы сделать документ более компактным, параметры установки были убраны. Вы можете найти параметры установки как в этом документе, так и в онлайн мануале для ipa-client-install.
1) Установить FreeIPA клиент с настройками по умолчанию
- hosts: freeipa-clients
vars:
freeipa_client_domain: example.com
freeipa_client_server: ipa.example.com
freeipa_client_realm: EXAMPLE.COM
freeipa_client_principal: admin
freeipa_client_password: Passw0rd
freeipa_client_fqdn: srv-1-eu-central-1.example.com
roles:
- timorunge.freeipa_client
2) Установить FreeIPA сервер с пользовательскими параметрами установки
- hosts: freeipa-clients
vars:
freeipa_client_domain: example.com
freeipa_client_server: ipa.example.com
freeipa_client_realm: EXAMPLE.COM
freeipa_client_principal: admin
freeipa_client_password: Passw0rd
freeipa_client_fqdn: srv-1-eu-central-1.example.com
freeipa_client_install_options:
- "--no-ntp"
- "--ssh-trust-dns"
- "--ip-address=172.20.1.2"
- "--ip-address=172.20.2.2"
roles:
- timorunge.freeipa_client
3) Установить FreeIPA клиент и добавить несколько IPA серверов
- hosts: freeipa-clients
vars:
freeipa_client_domain: example.com
freeipa_client_server:
- ipa-eu-central-1.example.com
- ipa-eu-west-1.example.com
- ipa-eu-west-2.example.com
- ipa-eu-west-3.example.com
- ipa.example.com
freeipa_client_realm: EXAMPLE.COM
freeipa_client_principal: admin
freeipa_client_password: Passw0rd
freeipa_client_fqdn: srv-1-eu-central-1.example.com
freeipa_client_install_options:
- "--server={{ freeipa_client_server | join(' --server=') }}"
roles:
- timorunge.freeipa_client
Опции установки FreeIPA клиента
Обзор параметров установки для ipa-client-install (4.6.4).
Использование: ipa-client-install [опции]
Опции:
--version показать номер версии программы и выйти
-h, --help показать это сообщение о помощи и выйти
-U, --unattended безответная (не)установка, никогда не запрашивает
пользователя
--uninstall удалить существующую установку. Удаление может
быть выполнено с помощью опции --unattended
Основные параметры:
-p PRINCIPAL, --principal=PRINCIPAL
принципал для использования при присоединении к IPA
области
--ca-cert-file=FILE
загрузить сертификат CA из этого файла
--ip-address=IP_ADDRESS
Укажите IP-адрес, который должен быть добавлен в DNS.
Эта опция может использоваться несколько раз
--all-ip-addresses Все маршрутизируемые IP-адреса, настроенные на любом интерфейсе,
будут добавлены в DNS
--domain=DOMAIN_NAME
основной DNS домен развертывания IPA (не
обязательно связанный с текущим именем хоста)
--server=SERVER FQDN IPA сервера
--realm=REALM_NAME Имя Kerberos области развертывания IPA (обычно
это название основного DNS домена в верхнем регистре)
--hostname=HOST_NAME
Имя хоста этой машины (FQDN). Если указано, имя хоста
будет установлено, и конфигурация системы будет
обновлена для сохранения после перезагрузки. По умолчанию
используется результат вызова getfqdn() из модуля socket Python.
Параметры клиента:
-w PASSWORD, --password=PASSWORD
пароль для присоединения к IPA области (предполагает пакетный
пароль, если принципал также не установлен)
-W Запросить пароль для присоединения к IPA области
--noac не изменять nsswitch.conf и конфигурацию PAM
-f, --force принудительно установить конфигурацию LDAP/Kerberos
--configure-firefox
настроить Firefox для использования учетных данных домена IPA
--firefox-dir=FIREFOX_DIR
указать каталог, где установлен Firefox (например: '/usr/lib/firefox')
-k KEYTAB, --keytab=KEYTAB
путь к сохраненному ключу из предыдущей регистрации
--mkhomedir создать домашние каталоги для пользователей при их первом входе
--force-join Принудительное подключение клиента, даже если он уже подключен
--ntp-server=NTP_SERVER
ntp сервер для использования. Эта опция может использоваться несколько
раз
-N, --no-ntp не настраивать ntp
--force-ntpd Остановить и отключить любые службы
синхронизации времени и даты, кроме ntpd
--nisdomain=NISDOMAIN
имя домена NIS
--no-nisdomain не настраивать имя домена NIS
--ssh-trust-dns настроить клиент OpenSSH доверять DNS SSHFP записям
--no-ssh не настраивать клиент OpenSSH
--no-sshd не настраивать сервер OpenSSH
--no-sudo не настраивать SSSD как источник данных для sudo
--no-dns-sshfp не создавать автоматически DNS SSHFP записи
--kinit-attempts=KINIT_ATTEMPTS
количество попыток получить TGT хоста (по умолчанию 5).
--request-cert запросить сертификат для машины
Параметры SSSD:
--fixed-primary Настройка sssd на использование фиксированного сервера в качестве основного
IPA сервера
--permit отключить правила доступа по умолчанию, разрешить все доступы.
--enable-dns-updates
Настройка машины на попытку обновления DNS, когда изменяется
IP-адрес.
--no-krb5-offline-passwords
Настройка SSSD на не хранение паролей пользователей, когда
сервер в режиме оффлайн
--preserve-sssd Сохранить старую конфигурацию SSSD, если это возможно
Параметры автоматического монтирования:
--automount-location=AUTOMOUNT_LOCATION
Место автоматического монтирования
Опции логирования и вывода:
-v, --verbose вывести отладочную информацию
-d, --debug псевдоним для --verbose (устарело)
-q, --quiet выводить только ошибки
--log-file=FILE записывать в указанный файл
Тестирование
Тестирование на Travis выполняется с использованием Docker и docker_test_runner. Тесты на Travis выполняют проверку кода и синтаксиса.
Для получения дополнительных сведений и дополнительных проверок ознакомьтесь с конфигурацией docker_test_runner и точкой входа Docker.
# Локальное тестирование:
curl https://raw.githubusercontent.com/timorunge/docker-test-runner/master/install.sh | sh
./docker_test_runner.py -f tests/docker_test_runner.yml
Зависимости
Эта роль требует запущенный FreeIPA Server (Github Repo).
Лицензия
Лицензия BSD 3-Clause "New" or "Revised"
Информация об авторе
- Тимор Унге
FreeIPA Identity Management Client provisioning.
ansible-galaxy install timorunge/ansible-freeipa-client