Диспетчер отображает сервер как “из синхронизации”, какова могла быть причина и что правильный путь состоит в том, чтобы диагностировать такую проблему?

Существует марионеточный сервер в компании, на которую я работаю с установленным Диспетчером.

Существует приблизительно 200 машин Linux, которыми управляет Марионеточный сервер.

При взгляде в Диспетчере GUI большая часть сервера появляется с зеленым значком, не говоря "Изменений", но существуют некоторые серверы, которые появляются с желтой / оранжевой иконкой с подсказкой, говорящей "из синхронизации".

Вы видите в следующем снимке экрана, что большинство серверов появляется с зеленым состоянием, и только сервер "sgproxy08" вне синхронизации: enter image description here

Выполнение 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 ~]#

Теперь существует два вопроса:

  1. Каковы требования для этого значка для становления зелеными и в синхронизации?
  2. Как я могу диагностировать такую проблему?
1
задан 14 July 2015 в 11:49
3 ответа

Я нашел причину рассинхронизации уведомлений в Foreman. Похоже, что на этих серверах застрял процесс puppet agent -t , он выглядит так:

root  7531 21487  0 Aug09 ?   00:00:03 puppet agent: applying configurat

Как только я завершил этот процесс и снова запустил puppet agent -t - проблема решена.

1
ответ дан 3 December 2019 в 20:50

Если вы используете Foreman 1.8 или более раннюю версию, ваш хост будет отображаться как «не синхронизированный» только в том случае, если Foreman не получил никаких отчетов для этого хоста в течение 5 минут дольше установленного значения » puppet_interval '(проверьте его в Администрирование> Настройки). По умолчанию это будет 35 минут . Есть параметр « outofsync_interval », который позволяет вам настроить это в Foreman 1.9.

Чтобы начать устранение неполадок (отсутствующие отчеты), я бы посмотрел на / var / log / foreman / production.log на своих ящиках Foreman и проверьте, получаете ли вы отчет от этого хоста, когда Puppet завершает свой запуск.

1
ответ дан 3 December 2019 в 20:50

Хосты могут быть не синхронизированы из-за перезапуска хоста/сервера, проблем с сетью или несоответствия версий марионеток между сервером и агентом.

В случае несоответствия версии вы можете обновить puppet agent, чтобы он соответствовал версии сервера, и синхронизировать хост с помощью «puppet agent -t».

Если у вас включен плагин удаленного-выполнения и удаленного-выполнения-ssh для мастера, вы можете запустить команду «puppet agent -t» из консоли мастера для рассинхронизированного хоста. Ниже приведены шаги:

  1. Включение подключаемых модулей удаленного-выполнения на сервере мастера, может потребоваться перезагрузка сервера

    sudo foreman-installer --enable-foreman-plugin-remote-execution --enable-foreman-proxy-plugin-remote-execution-ssh
    
  2. Синхронизация хоста

    • Перейдите в «Хосты → Все хосты» и установите флажок рядом с несинхронизированным хостом
    • Кнопка «Выбрать действие» появится в правом верхнем углу таблицы hosts. Выберите опцию «Запланировать удаленное задание» из списка действий.
    • В отображаемой форме оставьте значения по умолчанию и скопируйте «sudo puppet agent -t» (без кавычек)в текстовое поле «команда». Возможно, вам потребуется указать полный путь к puppet (, например. /opt/puppetlabs/puppet/bin/puppet), если двоичный файл puppet отсутствует в PATH хоста. Нажмите «Отправить».
    • После удаленного выполнения команды на хосте она синхронизируется с сервером, и Форман должен через несколько минут обновить статус хоста для синхронизации.
1
ответ дан 12 January 2021 в 07:48

Теги

Похожие вопросы