Что ставится на каждой ОС
Установщик не ветвится по названию дистрибутива — он определяет семейство и берёт строку из таблицы. Добавление ещё одного дистрибутива в известное семейство не требует правок в коде.
Docker
| Семейство | Как ставится |
|---|---|
|
Официальный репозиторий Docker: ключ в |
|
Пакет |
|
Пакет |
|
Файл |
Служба docker в семействах rhel и alt после установки пакета не запущена — установщик включает её явно.
PostgreSQL
| Семейство | Как ставится |
|---|---|
|
Репозиторий PGDG: ключ в |
|
Расширенный репозиторий Astra. Версия по умолчанию зависит от кодового имени: 17 для 1.7, 15 для 1.8. |
|
Пакет |
|
Репозиторий PGDG: |
Пути расходятся между семействами:
deb, astra |
rhel, alt |
|
|---|---|---|
|
|
|
Каталог кластера |
|
|
Файл журнала |
|
Внутри каталога кластера |
Локаль для initdb не зашита: берётся первая, которую система действительно знает, из C.UTF-8, en_US.UTF-8, C.
В glibc CentOS 7 локали C.UTF-8 нет, и зашитое значение приводило бы к отказу создать кластер.
NFS
| Семейство | Пакет | Служба | Роль сервера |
|---|---|---|---|
|
|
|
Поддержана |
|
|
|
Поддержана |
|
|
|
Не поддержана |
Группа-владелец экспортируемых каталогов различается: в deb это nogroup, в rhel — nobody.
Группы с чужим именем в системе просто нет, и chown с ней завершился бы ошибкой.
Служба включается до exportfs -a: в rhel после установки пакета она не запущена, а экспортировать без работающего сервера некуда.
SELinux
Актуален для семейства rhel, где по умолчанию включён режим enforcing.
Затрагивает три места.
- Тома контейнера
-
Bind-mount без метки недоступен процессу внутри контейнера. К каждому тому добавляется суффикс
:z— итоговый вид:rslave,z. - Каталог кластера PostgreSQL
-
Кластер лежит не там, где его ждёт политика. Выполняются
semanage fcontext -a -t postgresql_db_tиrestorecon -R. - Порт PostgreSQL
-
Нестандартный порт нужно разрешить:
semanage port -a -t postgresql_port_t -p tcp <порт>.
Дополнительно, при роли NFS-сервера, включается nfs_export_all_rw: без него каталоги отдаются, но клиент получает отказ при первой же записи.
Поведением управляет --selinux:
| Значение | Что делает |
|---|---|
|
Настраивать, если |
|
Настраивать и в режиме |
|
Не трогать политику. |
Даже configure не действует там, где SELinux выключен совсем: метка :z тогда не проставится, а docker откажется запускать контейнер.
semanage приходит отдельным пакетом, которого нет в minimal-установке.
При --useapt=y установщик доставляет его сам: policycoreutils-python в EL7, policycoreutils-python-utils начиная с EL8.
firewalld
На CentOS активен по умолчанию и закроет порты платформы. Установщик не меняет правила молча: список портов попадает в план на экране подтверждения.
Открываются только те порты, которые установщику известны наверняка:
-
порт PostgreSQL — кроме случая
--pgindockerport, когда наружу он не публикуется; -
порты платформы, заданные ключами
--erawshttpport,--erawshttpsport,--eraerlepmdport,--eradistports,--eranodesports; -
службы
nfs,mountd,rpc-bindпри роли NFS-сервера.
Поведением управляет --firewall:
| Значение | Что делает |
|---|---|
|
Открывать, если |
|
Открывать всегда. |
|
Не менять правила, но перечислить закрытые порты в отчёте. |
Порты, которые платформа открывает сама, установщику неизвестны.
В сети host контейнер публикует их самостоятельно, и из ответов их не вывести.
Если веб-интерфейс недоступен снаружи, откройте их вручную.
|
Особенности CentOS 7
CentOS 7 снят с поддержки, и это заметно при установке.
-
Базовые репозитории уехали с зеркал на
vault.centos.org. Пока строки не поправлены, любойyum installзавершится ошибкой. Установщик их не правит — это решение инженера, — но предупреждает об этом в предпроверках. -
Пакетный менеджер —
yum, а неdnf. Ветка выбирается автоматически. -
Модулей пакетов нет, поэтому
dnf module disable postgresqlне выполняется. -
bash 4.2.46 — ровно минимально необходимая версия.
-
Локали
C.UTF-8не существует; интерфейс переключится на английский.