Ошибки в работе Keycloak после изменения FQDN Менеджера управления
2. Проблема
После изменения FQDN Менеджера управления:
-
Миграция ВМ не работает.
-
Не удается установить связь с внешним провайдером.
3. Решение
Для устранения проблемы необходимо запустить скрипт на Менеджере управления:
#!/bin/bash
manager=$(hostname)
domain=$(hostname -d)
mkdir /root/scriptwork
cd /root/scriptwork
# Переключение менеджера управления в режим глобального обслуживания
vds_he_host=$(/usr/share/ovirt-engine/dbscripts/engine-psql.sh -t -c "SELECT host_name FROM vds JOIN vms ON run_on_vds_name=vds_name WHERE vm_name='HostedEngine';" 2>/dev/null | xargs)
ssh -i /etc/pki/ovirt-engine/keys/engine_id_rsa root@$vds_he_host "hosted-engine --set-maintenance --mode=global"
# Перевыпуск engine.cer + jboss сертификатов
/usr/share/ovirt-engine/bin/pki-enroll-pkcs12.sh --name="engine" --password=mypass --subject="/C=US/O=$domain/CN=$manager" --keep-key --san="DNS:$manager"
/usr/share/ovirt-engine/bin/pki-enroll-pkcs12.sh --name="jboss" --password=mypass --subject="/C=US/O=$domain/CN=$manager" --keep-key --san="DNS:$manager"
systemctl restart ovirt-engine ovirt-provider-ovn zvirt-engine-backend
# Фикс ovirt-provider-ovn
user="test"
cp /etc/ovirt-provider-ovn/conf.d/10-setup-ovirt-provider-ovn.conf /etc/ovirt-provider-ovn/conf.d/10-setup-ovirt-provider-ovn.conf_$(date +%Y-%m-%d)
/usr/share/ovirt-engine/bin/ovirt-register-sso-client-tool.sh --client-id=$user --client-ca-location=/etc/pki/ovirt-engine/certs/engine.cer --callback-prefix-url=https://$(hostname):443/ovirt-engine/
secret=$(/usr/share/ovirt-engine/dbscripts/engine-psql.sh \
-c "SELECT client_secret FROM sso_clients WHERE client_id='$user';" \
| grep -o "[A-Za-z0-9]*" | head -n 3 | tail -n 1)
/usr/share/ovirt-engine/dbscripts/engine-psql.sh -c "UPDATE sso_clients SET client_secret='$secret' WHERE client_id='ovirt-provider-ovn';"
source ./99_sso_client.conf
encoded_pass=$(/usr/share/ovirt-engine/bin/ovirt-engine-crypto-tool.sh crypto-encode --password=pass:$SSO_CLIENT_SECRET)
sed -i "s#^ovirt-sso-client-secret=.*#ovirt-sso-client-secret=${encoded_pass}#g" /etc/ovirt-provider-ovn/conf.d/10-setup-ovirt-provider-ovn.conf
systemctl restart ovirt-provider-ovn.service ovirt-engine zvirt-engine-backend.service
# Отключение глобального обслуживания
ssh -i /etc/pki/ovirt-engine/keys/engine_id_rsa root@$vds_he_host "hosted-engine --set-maintenance --mode=none"
rm -rf /root/scriptwork