This is an old revision of the document!
Изменение хостнеймов в кластере PMG
Представим ситуацию, когда в рабочем кластере PMG нам необходимо поменять имена хостов. К примеру, такая потребность может возникнуть, если нам требуется поменять HELO.
Теоретически, мы можем поменять в файле /var/lib/pmg/templates/main.cf.in следующую опцию smtp_helo_name таким образом, чтобы она принимала значение такое же, как и опция SMTPD Banner, доступная в GUI PMG:
smtpd_banner = [% pmg.mail.banner %] smtp_helo_name = [% pmg.mail.banner %]
Однако, данные конфигурации синхронизируются во всем кластере, а если нам необходимо HELO, отличное для каждого хоста - следует менять имя хоста.
Отредактировать имя необходимо в следующих файлах (и перезагрузиться):
/etc/hostname /etc/hosts reboot
Имена нод кластера, прописанных в данных файлах, должны разрешаться для каждого сервера. Т.е. один сервер должен правильным образом разрешать собственный hostname и hostname другого сервера, и наоборот.
Решение возможных проблем
Если после поочередной перезагрузки нод в кластере одна из нод будет долго висеть в статусе syncing - время заняться траблшутингом.
В первую очередь можно попробовать вручную отдать команду синхронизации на нодах и посмотреть - нет ли ошибок.
pmgcm sync pmgcm status
Если здесь всё ОК, но кластер продолжает висеть в статусе syncing, стоит почитать системный журнал на предмет возможных проблем с pmgmirror и pmgtunnel.
journalctl -u pmgmirror -u pmgtunnel --since today
pmgmirror в этой связке занимается репликацией баз на все ноды кластера. pmgtunnel туннелирует подключения к Postgres на другой ноде кластера.
После изменения имени нод я обнаружил такую ошибку, связанную с работой pmgtunnel:
database sync 'pmg_server' failed - DBI connect('dbname=Proxmox_ruledb;host=/run/pmgtunnel;port=2;','root',...) failed: connection to server o> Is the server running locally and accepting connections on that socket? at /usr/share/perl5/PMG/DBTools.pm line 66 tunnel finished 3212 10.10.111.198 pmgtunnel[673]: restarting crashed tunnel 3306 192.168.1.1
Можно проверить статус pmgtunnel командой:
pmgtunnel status
ОК, видим статус running. Не очень информативно.
Самое время попробовать остановить pmgtunnel и запустить заново в режиме debug.
pmgtunnel stop pmgtunnel start --debug
Через несколько секунд видим кое-что интересное:
Host key verification failed
Вполне вероятно, наш сервер после смены имени не доверяет соседу при подключении по ssh.
Попробуем сделать обновление отпечатков.
pmgcm update-fingerprints