FreeIPA на Astra SE: что пошло не так и как всё исправили
Нам нужно было поднять FreeIPA в контейнере на Astra SE по требованиям заказчика. Стоит учитывать, что контейнер использует минимальное systemd-окружение и опирается на корректную работу dbus, cgroup delegation. Именно этот кейс разберем сегодня.
⏺Что делали?
Мы использовали официальный образ и пробовали запуск через Docker, затем через Podman – но ipa-server-install сразу падал.
🤡И началось веселье: внутри контейнера случился мрак – systemd не мог корректно сформировать cgroup-иерархию, а dbus-брокер аварийно завершался с сообщением sockopt_get_peersec: Invalid argument. В результате не запускались зависимые сервисы: certmonger, pki-tomcatd завершался при инициализации, и установка разваливалась.
Это совпадало с описанным в issue FreeIPA – на Debian-based конфигурациях systemd и dbus в контейнере работают некорректно.
Переключение на cgroups v1 дало надежду: systemd внутри контейнера стал запускаться, но это не решило проблему с dbus. Вместе с коллегами мы перебрали разные рантаймы и конфигурации: Docker, Podman, «голый» containerd, варианты монтирования /sys/fs/cgroup (ro / rw). Итог один: dbus в контейнере на Astra SE так и не ожил, а без него FreeIPA не запускалась.
⏺Как решили проблему?
Пошли вглубь и попытались пересобрать systemd (🤡). Старую версию (как в CE) собрать не удалось – зависимости были сломаны. Собрали текущую версию с модификацией dbuspolicydir, установить её, и… Astra перестала загружаться.
И, наконец «волшебство» произошло: запуск в rootless Podman при использовании cgroups v1 позволил systemd и dbus внутри контейнера заработать и установка FreeIPA прошла успешно.
🚀Вывод из кейса: при запуске FreeIPA в контейнере на Astra SE обращайте внимание на комбинацию рантаймов, их режимов и версию cgroup.
Обсудим вместе, сталкивались с подобными кейсами?
2/2
#лонгрид
Post #920
2.3K
- 👍 8
- ❤ 6
- 🔥 6
- 👎 2