```{index} ansible; ansible-freeipa, freeipa; replica, replica, sysctl, внешние ссылки ``` # Установка реплики ## Документация и описание ```{seealso} Официальная документация: [RHEL8 - Installing Identity Management - Chapter 22. Installing an IdM replica](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/installing_identity_management/installing-an-ipa-replica_installing-identity-management) ``` Я производил установку на машину, уже введённую в домен в качестве клиента; инструкция описывает именно этот вариант. Установка прошла успешно. В документации по приведённой выше ссылке описан также вариант установки без предварительного ввода в домен. ## Предварительная подготовка сервера ### Увеличим swap до 4-х гигов Увеличим жёсткий диск до 12 гигов и расширим `/dev/sda2`, например, с помощью `cfdisk`. Дальше: ```bash sudo pvresize -v /dev/sda2 sudo lvextend --size 4G /dev/cl/swap sudo swapoff /dev/cl/swap sudo mkswap /dev/cl/swap sudo swapon -v /dev/cl/swap ``` ### Для FreeIPA требуется IPv6, включим ```bash sudo vim /etc/sysctl.conf ``` Явно укажем: ```bash net.ipv6.conf.all.disable_ipv6 = 0 net.ipv6.conf.default.disable_ipv6 = 0 ``` Применим изменения (либо перезагрузим машину): ```bash sudo sysctl --system ``` ```{seealso} Дополнительная информация --- в примечании [^footnote-sysctl]. ``` [^footnote-sysctl]: Мне не помогли следующие варианты (ни по отдельности, ни вместе): - закомментировать `net.ipv6.conf.all.disable_ipv6 = 1` в `/etc/sysctl.conf`; - ```bash sysctl --write net.ipv6.conf.all.disable_ipv6=0 sysctl --write net.ipv6.conf.default.disable_ipv6=0 ``` Следующие команды (для конкретных интерфейсов) не нужно выполнять, если выполнены предыдущие две, но оставлю их здесь для для справки: ```bash sysctl --write net.ipv6.conf.ens192.disable_ipv6=0 sysctl --write net.ipv6.conf.lo.disable_ipv6=0 ``` ### Проверим /etc/hosts, исправим если нужно Сейчас `/etc/hosts` именно в нужном формате формирует {doc}`плейбук стартовой инициализации хостов `. Практика показала, что VMWare, когда вносит изменения в данный файл, нарушает требуемый формат (или последовательность записей), так что проверить не мешает. Детально требования описаны в отдельной статье, там же есть ссылка на соответствующий раздел официальной документации: {doc}`/freeipa/invalid-hostname` ## Установка реплики плейбуком ansible Внесём `c04-ipa-test.sitefactory.local` (а также серверы FreeIPA, которые нужно считать "главными") в инвентарь: ```bash vim inv/freeipa-replica/hosts ``` ```ini [ipaservers] c04-ipa-main.sitefactory.local [ipareplicas] c04-ipa-test.sitefactory.local ``` Будут созданы replication agreements от "главного" сервера из `ipaservers` к устанавливаемым репликам из `ipareplicas`. Сразу с несколькими не пробовал (может сработать?). ```{hint} После окончания установки все реплики FreeIPA **равноценны**, главных и подчинённых нет (но есть replication agreements между разными парами серверов --- в соответствии с тем, что мы задали в инвентаре). ``` Выполним плейбук: ``` ansible-playbook -i inv/freeipa-replica \ --vault-id askme@prompt \ playbook/maintenance/freeipa/replica/install-replica.yml ``` ```{attention} Важно: для установки реплики потребуется пользователь с правами админа на FreeIPA, полномочий `hostenrolluser` для этого не достаточно! ``` ```{note} Если в процессе выполнения плейбука столкнулись с ошибкой `AttributeError: 'AnsibleModuleLog' object has no attribute 'isatty'` (у меня была на шаге `[ipareplica : Install - Setup DNS]`) --- решение в статье {doc}`/ansible/playbooks/freeipa/isatty-error` ```