Форман с марионеткой 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).