Системе требуется доступ к хосту updates.supportlinux.su по TCP, порт 44322. Необходимо указать переменные RSYNC_USER и USER_PASS в файле окружения. Данные предоставляются при передаче системы.
Рекомендованные (проверенные) дистрибутивы: openSUSE Leap 15.x, opensuse Tumbleweed, SLES 15.3+
- ext4, один раздел /, размер раздела зависит от количества подписок и варьируется для продуктов SLES, в среднем, от 150 до 500 Gb (примерно 50Gb на продукт)
Имя хоста дожно содержать FQDN (пример: rmt-airgap.acme.com)
openSUSE: # hostnamectl hostname rmt-airgap.acme.com
SLES: # hostnamectl set hostname rmt-airgap.acme.com- docker-composer или
- python3-docker-compose
Пример для opensuse:15.4
zypper addrepo addrepo https://download.opensuse.org/repositories/home:predivan:podman/15.4/home:predivan:podman.repo
zypper refresh
zypper install docker-compose sudo systemctl enable docker --now cd
git clone https://github.com/st-man/rmt-container
cd rmt-container- RSYNC_USER="ИМЯ ПОЛЬЗОВАТЕЛЯ ДЛЯ СИНХРОНИЗАЦИИ"
- USER_PASS="ПАРОЛЬ ПОЛЬЗОВАТЕЛЯ ДЛЯ СИНХРОНИЗАЦИИ"
- TZ="Таймзона"
Example:
RSYNC_USER=UC2724859
USER_PASS=6A9b500j
TZ=Europe/Moscowexport CA_PWD="PASSWORD" (например, export CA_PWD="_rmt")Выполнить скрипт создания сертификатов
sh certgen.sh
в результате работы в каталоге ./ssl должны быть файлы:
- rmt-ca.cnf
- rmt-ca.crt
- rmt-ca.key
- rmt-ca.srl
- rmt-server.cnf
- rmt-server.crt
- rmt-server.csr
- rmt-server.key
Образы контейнеров будут скачаны с https://hub.docker.com/repository/docker/suseru/ При необходимости, можно организовать локальный registry
# docker-compose up -dПри запуске контейнер rmt проверяет наличие синхронизированных пакетов с удаленного RMT, поэтому при первом запуске может пройти много времени, прежде чем контейнер будет готов к работе. Посмотреть журнал работы контейнера (50 строк):
docker logs --tail=50 rmt-container-rmt-1 # docker-compose ps
------------
NAME COMMAND SERVICE STATUS PORTS
rmt-container-db-1 "/entrypoint.sh mysq…" db running 3306/tcp
rmt-container-nginx-1 "/usr/local/bin/entr…" nginx running 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp
rmt-container-rmt-1 "/bin/bash /usr/loca…" rmt running
------------# docker-compose exec rmt rmt-cli products list -allв случае отсутствия списка продуктов, проверить каталог ./public/repo/SUSE на наличие пакетов *.rpm, если отсутствуют, подождать автоматической синхронизации или провести ее вручную, см. ниже
(в примере 2136 - SLES for SAP) и репозитории (посмотреть список доступных ID продуктов: docker-compose exec rmt rmt-cli products list --all)
# docker-compose exec rmt rmt-cli products enable 2136Проверить включенные продукты
# docker-compose exec rmt rmt-cli products listssh root@${SYSTEM_TO_BE_REGISTER}# curl http://${RMT_SERVER}/tools/rmt-client-setup --output rmt-client-setupсертификаты будут импортированы в доверенное хранилище
# sh rmt-client-setup https://${RMT_SERVER}/# cd ~/rmt-containerв первый раз лиюл при добавлении новых продуктов может занять много времени
# docker-compose exec rmt rsync -ave "ssh -p 43322" --delete --exclude '*.json' ${RSYNC_USER}@${RMT_REMOTE_HOST}:/var/lib/rmt/public/* /var/lib/rmt/public (чтобы отключить verbose, используйте ключ -aqe вместо -ave)
удалить файлы json в ./public/repo/SUSE/ и перезапустить контейнеры
docker-compose restart
docker-compose exec rmt rmt-cli import data /var/lib/rmt/public/repo/docker-compose exec rmt rmt-cli products enable ${PRODUCT_ID)