В компании, в которой я работаю, есть марионеточный сервер с установленным Foreman.
Есть около 200 машин Linux, которыми управляет сервер Puppet.
При просмотре графического интерфейса Foreman большинство серверов отображаются с зеленым значком «Без изменений», но есть некоторые серверы, которые отображаются с желто-оранжевым значком с всплывающей подсказкой «Несинхронизация».
Вы можете видеть на следующем снимке экрана, что большинство серверов отображаются с зеленым статусом, и только сервер «sgproxy08» не синхронизирован:
Бег puppet agent -t
на сервере sgproxy08 завершается правильно:
[root@sgproxy08 ~]# puppet agent -t
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Loading facts
Info: Caching catalog for sgproxy08.sg.company.com
Info: Applying configuration version '1436862601'
Notice: Finished catalog run in 49.90 seconds
[root@sgproxy08 ~]#
Теперь есть два вопроса:
Я нашел причину рассинхронизации уведомлений в Foreman. Кажется, что на этих серверах застрял процесс puppet agent -t
, выглядит так:
root 7531 21487 0 Aug09 ? 00:00:03 puppet agent: applying configurat
Как только я убил этот процесс и запустил puppet agent -t
снова - проблема решена.
Если вы используете Foreman 1.8 или ниже, ваш хост будет отображаться как «не синхронизированный» только в том случае, если Foreman не получил никаких отчетов для этого хоста в течение 5 минут дольше, чем установленоpuppet_interval'(проверьте это в Администрирование> Настройки). По умолчанию это будет 35 минут. Естьoutofsync_interval', которая позволяет настроить это в Foreman 1.9.
Чтобы начать устранение неполадок (отсутствующие отчеты), я бы посмотрел на /var/log/foreman/production.log
на своих окнах Foreman и проверьте, получаете ли вы отчет от этого хоста, когда Puppet завершает свою работу.