
Keycloak upgrade
Keycloak — продукт с открытым кодом для реализации single sign-on с возможностью управления доступом, нацелен на современные применения и сервисы. По состоянию на 2018 год, этот проект сообщества JBoss находится под управлением Red Hat которые используют его как upstream проект для своего продукта RH-SSO
На официальном сайте про обновление Keycloak сказано следующее:
- скачать и распаковать архив
- скопировать содержимое conf/, providers/ и themes/ в новое расположение
- пересобрать Keycloak (Re-build)
Обновление будем производить с версии 19.0.1 до 21.0.0. На момент написания статьи это была финальная версия
Скачиваем, распаковываем архив и назначаем права
$ sudo wget https://github.com/keycloak/keycloak/releases/download/21.0.0/keycloak-21.0.0.zip -P /opt/keycloak $ sudo unzip /opt/keycloak/keycloak-21.0.0.zip -d /opt/keycloak $ sudo chown -R keycloak. /opt/keycloak/keycloak-21.0.0 $ sudo chmod o+x /opt/keycloak/keycloak-21.0.0/bin/
Сохраняем дефолтеый конфиг
Selectel — ведущий провайдер облачной инфраструктуры и услуг дата-центров
Компания занимает лидирующие позиции на рынке на рынке выделенных серверов и приватных облаков, и входит в топ-3 крупнейших операторов дата-центров в России.
$ sudo mv /opt/keycloak/keycloak-21.0.0/conf/keycloak.conf /opt/keycloak/keycloak-21.0.0/conf/keycloak.conf-origin
Копируем ssl-сертификаты и конфигурационный файл с настройками
$ sudo cp /opt/keycloak/keycloak-19.0.1/conf/server* /opt/keycloak/keycloak-21.0.0/conf/ $ sudo cp /opt/keycloak/keycloak-19.0.1/conf/keycloak.conf /opt/keycloak/keycloak-21.0.0/conf/
Редактируем конфигурационный файл
$ sudo nano /opt/keycloak/keycloak-21.0.0/conf/keycloak.conf ... # The file path to a server certificate or certificate chain in PEM format. https-certificate-file=/opt/keycloak/keycloak-21.0.0/conf/server.crt.pem # The file path to a private key in PEM format. https-certificate-key-file=/opt/keycloak/keycloak-21.0.0/conf/server.key.pem
Останавливаем сервис
$ sudo systemctl stop keycloak
Пересобираем Keycloak
$ cd /opt/keycloak/keycloak-21.0.0 $ sudo bin/kc.sh build
На всякий случай делаем дамп нашей базы
$ pg_dump -h localhost -U keycloak -W keycloak > /tmp/keycloak_20230225.dump
Пробуем запустить
$ sudo bin/kc.sh start --hostname=keycloak.itdraft.ru
Важно. В версии 21.0.0 был баг, Keycloak не хотел запускаться, появлялась ошибка:
ERROR [org.keycloak.quarkus.runtime.cli.ExecutionExceptionHandler]
Решение ошибки: обновляем параметр в базе
$ sudo su - postgres -c psql =# \c keycloak =# update realm set admin_theme = 'keycloak' where admin_theme is null;
Редактируем системный юнит
$ sudo nano /etc/systemd/system/keycloak.service ... ExecStart=!/opt/keycloak/keycloak-21.0.0/bin/kc.sh start --hostname=keycloak.mydomain.com ...
Перечитываем изменения и запускаем сервис
$ sudo systemctl daemon-reload $ sudo systemctl start keycloak $ sudo systemctl status keycloak