Форман с марионеткой node.rb ошибка 404 Не найдено

Я установил foreman-1.2 с куклой, после установки я зарегистрировал свою куклу smart-proxy на бригадира.

когда я запускаю следующую команду

[root@puppet ~]# puppet agent -t
Warning: Unable to fetch my node definition, but the agent run will continue:
Warning: Error 400 on SERVER: Failed to find puppet.example.com via exec: Execution of '/etc/puppet/node.rb puppet.example.com' returned 1: --- false

Info: Retrieving plugin
Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Failed when searching for node puppet.example.com: Failed to find puppet.example.com via exec: Execution of '/etc/puppet/node.rb puppet.example.com' returned 1: --- false

Warning: Not using cache on failed catalog
Error: Could not retrieve catalog; skipping run

Я пытался следовать

[root@puppet ~]# /etc/puppet/node.rb puppet.example.com
--- false
Error retrieving node puppet.example.com: Net::HTTPNotFound

foreman.log отладка

Started GET "/node/puppet.example.com?format=yml" for 10.101.20.15 at 2014-03-25 21:01:47 -0400
Processing by HostsController#externalNodes as YML
  Parameters: {"name"=>"puppet.example.com"}
  Setting Load (1.3ms)  SELECT `settings`.* FROM `settings` WHERE `settings`.`name` = 'restrict_registered_puppetmasters' ORDER BY name LIMIT 1
  Setting Load (0.3ms)  SELECT `settings`.* FROM `settings` WHERE `settings`.`name` = 'require_ssl_puppetmasters' ORDER BY name LIMIT 1
  SmartProxy Load (0.5ms)  SELECT `smart_proxies`.* FROM `smart_proxies` INNER JOIN `features_smart_proxies` ON `features_smart_proxies`.`smart_proxy_id` = `smart_proxies`.`id` INNER JOIN `features` ON `features`.`id` = `features_smart_proxies`.`feature_id` WHERE `features`.`name` = 'Puppet' ORDER BY smart_proxies.name
  Setting Load (0.3ms)  SELECT `settings`.* FROM `settings` WHERE `settings`.`name` = 'trusted_puppetmaster_hosts' ORDER BY name LIMIT 1
Verifying request from ["puppet.example.com"] against ["puppet.example.com"]
  User Load (0.4ms)  SELECT `users`.* FROM `users` WHERE `users`.`login` = 'admin' LIMIT 1
Setting current user thread-local variable to admin
  Host::Managed Load (0.7ms)  SELECT `hosts`.* FROM `hosts` WHERE `hosts`.`type` IN ('Host::Managed') AND `hosts`.`certname` = 'puppet.example.com' LIMIT 1
  Host::Managed Load (0.6ms)  SELECT `hosts`.* FROM `hosts` WHERE `hosts`.`type` IN ('Host::Managed') AND `hosts`.`name` = 'puppet.example.com' LIMIT 1
Completed 404 Not Found in 25ms (ActiveRecord: 4.1ms)

Я что-то пропустил? мне нужно сначала создать хост на foreman GUI? Я не понимаю концепцию node.rb

2 ответа

Сначала вы должны проверить содержимое файла node.rb. Есть ряд переменных, которые должны быть установлены для его работы. Похоже, что это не было сделано, потому что Net::HTTPNotFound говорит, что не может найти ваш сервер Foreman.

Во-вторых, да и нет - сначала нужно определить хост в Froreman. Если хост не существует в Формане, Форман "может" его создать - это действительно зависит от того, как вы настроили Форман.

Если память функционирует должным образом, я полагаю, что несуществующий хост будет создан, когда факты загружены node.rb (если это включено). Если вы просто запускаете его из командной строки, то никакие факты не загружаются и хост не создается.

Для тестирования убедитесь, что хост создан в Foreman. Затем проверьте node.rb (после того, как вы убедитесь, что переменные в нем установлены правильно).

РЕДАКТИРОВАТЬ: Вы последний вопрос: главная функция node.rb - получить отформатированную конфигурацию yaml для сервера и передать ее марионетке. Вторичный также служит для загрузки фактов с сервера в Foreman - который может использоваться при классификации сервера в Foreman.

По сути, вы должны убедиться, что мастер и агент знакомы друг с другом (через /etc/hosts или dns). Эта ошибка обычно возникает, когда мастер не может разрешить имя агента (например, puppet.example.com).

Другие вопросы по тегам