марионеточный клиент сообщает неправильному хосту в Формане

#report #puppet #hostname #foreman

#Сообщить #марионетка #имя хоста #мастер

Вопрос:

Это мой первый пост!

У меня есть 100 узлов, управляемых марионеткой/форманом. Все хорошо. Я сделал то, что уже делал без проблем в прошлом: изменил имя хоста сервера.

На этот раз я сменил 2 имени хоста:

Изначально у меня были «ворота 02» и «ворота 03».

Я переместил gate02 в «gate02old» (с фиктивным IP-адресом и выключил сервер).

затем я переместил ворота 03 в ворота 02 …

Теперь (новые) отчеты gate02 обновляют хост под названием gate02old в формане.

Я действительно очистил сертификаты на сервере кукол. Я устанавливаю ssl-адрес в (новом) gate02 и запускаю puppet agent. Я не нашел никакой ссылки на «ворота» в /var/lib/puppet. Я изменил имя сертификата в puppet.conf и в имени хоста, а также в sysconfig/network-script/ifcfg-xxxx.

Агент марионеток работает бесперебойно и отправляет его на сервер кукол. Но он обновляет не тот хост!

У кого-нибудь есть подсказка, как это исправить ?

Спасибо!

Бригадир 2.0.3 Марионетка 6

Комментарии:

1. Для полноты «имя хоста» и «hostanme-f» возвращают оба gate02.right-domain.com

2. Марионеточные узлы идентифицируют себя со своим сервером через имя сертификата, а не (напрямую) через имя хоста. Сервер классифицирует их и сообщает о них через certname. Если отчеты для данного узла регистрируются для имени xyz, то это происходит потому, что узел представляет сертификат, идентифицирующий его как xyz, и сервер успешно проверяет этот сертификат.

Ответ №1:

Я не согласен с тем, что описанная последовательность событий привела к описанному поведению. Если отчеты для первого gate03 , теперь названного gate02 , регистрируются на сервере для имени gate02old , то это происходит потому, что эта машина представляет сертификат серверу, который идентифицирует ее как gate02old (и сервер принимает этот сертификат). Представленная последовательность событий не объясняет, как это может быть, но мое первое предположение состоит в том, что на самом деле (новый) gate02old запускает и запрашивает каталоги с сервера, а не (новый) gate02 .

Исправьте это с помощью

  1. Убедитесь, что машина, которую вы хотите запустить, на самом деле та, которая запущена, и что ее имя хоста на самом деле соответствует тому, что вы хотите, чтобы это было.


  2. Выключение агента (новый) gate02 . Если он работает в режиме демона, выключите демона и отключите его. Если он запланирован внешним планировщиком, остановите и отключите его там. Рассмотрите также возможность использования puppet agent --disable .
  3. Деактивация узла на сервере и очистка его данных, включая сертификаты:
     puppet node deactivate gate02 puppet node deactivate gate02old puppet node deactivate gate03  

    Тогда вам, возможно, захочется немного подождать на этом этапе …

     puppet node clean gate02 puppet node clean gate02old puppet node clean gate03  
  4. Очистка сертификатов узлов. Для безопасности я бы сделал это на обоих узлах. Удаление /opt/puppetlabs/puppet/ssl (на узлах, а не на сервере!) должно сработать для этого, или вы можете полностью удалить пакет агента-марионетки, удалить все оставшиеся файлы, а затем переустановить.
  5. Обновление конфигурации марионетки на новой gate02 по мере необходимости.
  6. Повторное включение агента gate02 и его запуск или запуск в --test режиме.
  7. Подписание нового CSR (если у вас не включена автоматическая регистрация), который должен был быть выдан для gate02 или для любого имени сертификата, явно указанного в конфигурации марионетки этого узла.

Комментарии:

1. @SoFe, весьма вероятно, что ситуация отличается от того, что вы представили, и от того, что вы думаете. Я советую вам вернуться и проверить свои предположения, особенно о том, какие машины на самом деле работают и делают запросы в каталог, какие имена сертификатов они на самом деле представляют и где регистрируются отчеты.

2. Привет, Джон, Во-первых, спасибо, что вник в мою проблему. Я сделал шаги, которые вы дали, но, чтобы сделать это короче, это не сработало. Я думал, что могу прикрепить файл со всеми подробностями, но я не понял, как это сделать. Я помещу это в «ответ».

3. @SoFe не публикуйте ответ, который не отвечает на вопрос. Если у вас есть дополнительные сведения для представления, отредактируйте их в вопросе. Также имейте в виду, что мы обычно не одобряем внесение существенных изменений в вопрос после того, как на него был дан ответ, но я обещаю не возражать в этом случае.

Ответ №2:

Спасибо за ответ, хотя он и был неправильным. Я действительно попал в нужную точку, снова изменив имя хоста старого gateold02 на другое, существующее для тестирования, запустив сервер и вернув его в Форман. Как только это будет сделано, удаление (снова!) сертификатов нового gate02 исправит его, и его отчеты теперь обновляют правильную запись в Foreman.

Я все еще верю, что есть что-то (база данных?), что не было обновлено правильно, поэтому форман был уверен, что хост под названием «gate02» был в графическом интерфейсе «gateold02».

Мне очень жаль, если вы мне не верите.

Не сказать, чтобы я был несколько разочарован.

Ваше здоровье.