Puppet/FAQ: различия между версиями
Зануда (обсуждение | вклад) |
Зануда (обсуждение | вклад) мНет описания правки |
||
(не показано 15 промежуточных версий 3 участников) | |||
Строка 21: | Строка 21: | ||
Could not retrieve catalog; skipping run | Could not retrieve catalog; skipping run | ||
'''О''': Ваш foreman не настроен для работы с текущей конфигурацией puppet, вам нужно отключить службу внешних узлов в | '''О''': Ваш foreman не настроен для работы с текущей конфигурацией puppet, вам нужно отключить службу внешних узлов в **/etc/puppet/puppet.conf** так: | ||
# external_nodes = /usr/lib/puppet-modules/theforeman-foreman/files/external_node_v2.rb | # external_nodes = /usr/lib/puppet-modules/theforeman-foreman/files/external_node_v2.rb | ||
# node_terminus = exec | # node_terminus = exec | ||
и перезапустить puppet после перезапуска puppetserver. После чего при необходимости установите '''facter''' настройте [[Foreman]] и [[Smart-proxy]] | |||
---- | ---- | ||
'''В''': При запуске puppet с ключём apply и манифестом site вылезает ошибка о невозможности соединиться с сервером foreman: | |||
# puppet apply /etc/puppet/environments/production/manifests/site.pp | |||
/usr/lib/ruby/gems/2.7.0/gems/facter-2.5.7.1/lib/facter/ec2/rest.rb:28: warning: calling URI.open via Kernel#open is deprecated, call URI.open directly or use URI#open | |||
Warning: Facter: Error loading fact /usr/lib/puppet-modules/theforeman-foreman/lib/facter/sssd.rb: cannot load such file -- facter/util/sssd | |||
/usr/lib/ruby/gems/2.7.0/gems/facter-2.5.7.1/lib/facter/ec2/rest.rb:28: warning: calling URI.open via Kernel#open is deprecated, call URI.open directly or use URI#open | |||
/usr/lib/ruby/gems/2.7.0/gems/facter-2.5.7.1/lib/facter/ec2/rest.rb:28: warning: calling URI.open via Kernel#open is deprecated, call URI.open directly or use URI#open | |||
Notice: Compiled catalog for dno.office.basealt.ru in environment production in 0.03 seconds | |||
Notice: /Stage[main]/Main/File[/etc/passwd]/group: group changed 'root' to 'bin' | |||
Notice: Applied catalog in 0.06 seconds | |||
Error: Report processor failed: Could not send report to Foreman at http://dno.office.basealt.ru:2345/api/config_reports: Failed to open TCP connection to dno.office.basealt.ru:2345 (Connection refused - connect(2) for "dno.office.basealt.ru" port 2345) | |||
["/usr/lib/ruby/net/http.rb:960:in `initialize'", "/usr/lib/ruby/net/http.rb:960:in `open'", "/usr/lib/ruby/net/http.rb:960:in `block in connect'", "/usr/lib/ruby/timeout.rb:95:in `block in timeout'", "/usr/lib/ruby/timeout.rb:105:in `timeout'", "/usr/lib/ruby/net/http.rb:958:in `connect'", "/usr/lib/ruby/net/http.rb:943:in `do_start'", "/usr/lib/ruby/net/http.rb:932:in `start'", "/usr/lib/ruby/net/http.rb:1483:in `request'", "/usr/lib/ruby/gems/2.7.0/gems/puppet-7.3.0/lib/puppet/reports/foreman.rb:69:in `process'", "/usr/lib/ruby/gems/2.7.0/gems/puppet-7.3.0/lib/puppet/indirector/report/processor.rb:37:in `block in process'", "/usr/lib/ruby/gems/2.7.0/gems/puppet-7.3.0/lib/puppet/indirector/report/processor.rb:54:in `block in processors'", "/usr/lib/ruby/gems/2.7.0/gems/puppet-7.3.0/lib/puppet/indirector/report/processor.rb:51:in `each'", "/usr/lib/ruby/gems/2.7.0/gems/puppet-7.3.0/lib/puppet/indirector/report/processor.rb:51:in `processors'", "/usr/lib/ruby/gems/2.7.0/gems/puppet-7.3.0/lib/puppet/indirector/report/processor.rb:30:in `process'", "/usr/lib/ruby/gems/2.7.0/gems/puppet-7.3.0/lib/puppet/indirector/report/processor.rb:14:in `save'", "/usr/lib/ruby/gems/2.7.0/gems/puppet-7.3.0/lib/puppet/indirector/indirection.rb:316:in `save'", "/usr/lib/ruby/gems/2.7.0/gems/puppet-7.3.0/lib/puppet/configurer.rb:476:in `send_report'", "/usr/lib/ruby/gems/2.7.0/gems/puppet-7.3.0/lib/puppet/configurer.rb:452:in `run_internal'", "/usr/lib/ruby/gems/2.7.0/gems/puppet-7.3.0/lib/puppet/configurer.rb:246:in `run'", "/usr/lib/ruby/gems/2.7.0/gems/puppet-7.3.0/lib/puppet/application/apply.rb:342:in `apply_catalog'", "/usr/lib/ruby/gems/2.7.0/gems/puppet-7.3.0/lib/puppet/application/apply.rb:254:in `block in main'", "/usr/lib/ruby/gems/2.7.0/gems/puppet-7.3.0/lib/puppet/context.rb:62:in `override'", "/usr/lib/ruby/gems/2.7.0/gems/puppet-7.3.0/lib/puppet.rb:306:in `override'", "/usr/lib/ruby/gems/2.7.0/gems/puppet-7.3.0/lib/puppet/application/apply.rb:208:in `main'", "/usr/lib/ruby/gems/2.7.0/gems/puppet-7.3.0/lib/puppet/application/apply.rb:178:in `run_command'", "/usr/lib/ruby/gems/2.7.0/gems/puppet-7.3.0/lib/puppet/application.rb:421:in `block in run'", "/usr/lib/ruby/gems/2.7.0/gems/puppet-7.3.0/lib/puppet/util.rb:735:in `exit_on_fail'", "/usr/lib/ruby/gems/2.7.0/gems/puppet-7.3.0/lib/puppet/application.rb:421:in `run'", "/usr/lib/ruby/gems/2.7.0/gems/puppet-7.3.0/lib/puppet/util/command_line.rb:143:in `run'", "/usr/lib/ruby/gems/2.7.0/gems/puppet-7.3.0/lib/puppet/util/command_line.rb:77:in `execute'", "/usr/bin/puppet:5:in `<main>'"] | |||
'''О''': Настроить [[foreman]] и запустить его службу. | |||
---- | |||
'''В''': У меня при запуске <pre>puppet agent -t</pre> вылезает ошибка: | |||
Error: Could not retrieve catalog from remote server: Error 500 on SERVER: Server Error: Failed when searching for node predvridlo.office.basealt.ru: Failed to find predvridlo.office.basealt.ru via exec: Execution of '/usr/lib/puppet-modules/theforeman-foreman/files/external_node_v2.rb predvridlo.office.basealt.ru' returned 1: | |||
Warning: Not using cache on failed catalog | |||
Error: Could not retrieve catalog; skipping run | |||
А при прямом запуске ''node.rb'': | |||
# /usr/lib/puppet-modules/theforeman-foreman/files/external_node_v2.rb predvridlo.office.basealt.ru | |||
predvridlo.office.basealt.ru: During the fact upload the server responded with: 403 Forbidden. Error is ignored and the execution continues. | |||
{ | |||
"error": {"message":"Access denied","details":"Missing one of the required permissions: upload_facts","missing_permissions":["upload_facts"]} | |||
} | |||
Error retrieving node predvridlo.office.basealt.ru: Net::HTTPForbidden | |||
Check Foreman's /var/log/foreman/production.log for more information. | |||
Как лечить? | |||
'''О''': | |||
1. Вам необходимо добавить значение имена машины, с которой производится запуск, в доверенные хосты (trusted hosts), которые находятся на странице форемана в ''Администратор'' -> ''Параметры'' -> ''Безопасность и проверка подлинности''. | |||
2. Проверить в форемане, что капсула (smart-proxy) с адресом, одкуда производится запуск скрипта, имеет минимум одно из 4-х свойств: **Puppet**, **Ansible**, **Chef**, **Salt**. Если отсутствуют, настроить капсулу на поддержку одного из свойств. В крайнем случае, в настройках капсул необходимо добавить: | |||
:restrict_registered_smart_proxies: false | |||
---- | |||
'''В''': У меня при запуске <pre>puppet agent -t</pre> выдается ошибка: | |||
<pre>#puppet agent -t | |||
WARN: Unresolved specs during Gem::Specification.reset: | |||
scanf (~> 1.0) | |||
WARN: Clearing out unresolved specs. | |||
Please report a bug if this causes problems. | |||
Warning: Unable to fetch my node definition, but the agent run will continue: | |||
Warning: Error 500 on SERVER: Server Error: Exception while executing '/usr/lib/puppet-modules/theforeman-foreman/files/external_node_v2.rb': Cannot run program "/usr/lib/puppet-modules/theforeman-foreman/files/external_node_v2.rb" (in directory "."): error=2, No such file or directory | |||
Info: Retrieving pluginfacts | |||
Info: Retrieving plugin | |||
Error: Could not retrieve catalog from remote server: Error 500 on SERVER: Server Error: Failed when searching for node sample.server.name: Exception while executing '/usr/lib/puppet-modules/theforeman-foreman/files/external_node_v2.rb': Cannot run program "/usr/lib/puppet-modules/theforeman-foreman/files/external_node_v2.rb" (in directory "."): error=2, No such file or directory | |||
Warning: Not using cache on failed catalog | |||
Error: Could not retrieve catalog; skipping run</pre> | |||
'''О''': | |||
Причина в том, что не может запуститься скрипт конфигурации подключаемых хостов для '''foreman''' | |||
Закомметируйте строки в файле ''/etc/puppet/puppet.conf'' | |||
<pre> | |||
# external_nodes = /usr/lib/puppet-modules/theforeman-foreman/files/external_node_v2.rb | |||
# node_terminus = exec | |||
</pre> | |||
После изменений перезапустите '''puppetserver''' | |||
---- | |||
'''В''': При запуске puppet agent -t агент выдаёт ошибку: | |||
Error: Could not send report: certificate verify failed [unable to get local issuer certificate for CN=puppet.test.loc] | |||
'''О''': Данная ошибка появляется после пересоздания сертификата на сервере. Для исправления на агенте нужно удалить каталог /etc/puppet/ssl и повторно запустить тест: | |||
# rm -rf /etc/puppet/ssl | |||
# puppet agent --test --verbose | |||
[[Category: puppetserver]] | [[Category: puppetserver]] | ||
[[Категория:Управление автоматизацией]] | [[Категория:Управление автоматизацией]][[Категория:Управление конфигурациями]] | ||
{{Category navigation|title=Управление автоматизацией|category=Управление автоматизацией|sortkey={{SUBPAGENAME}}}} | {{Category navigation|title=Управление автоматизацией|category=Управление автоматизацией|sortkey={{SUBPAGENAME}}}} | ||
{{Category navigation|title=Управление конфигурациями|category=Управление конфигурациями|sortkey={{SUBPAGENAME}}}} |
Текущая версия от 15:03, 18 ноября 2021
ЧаВО по теме Puppet
В: Почему при запуске службы Puppet у меня вылезают ошибки при получении статуса службы (**systemctl status puppet**):
Could not retrieve catalog from remote server: Error 500 on SERVER: Server Error: Failed when searching for node dno.office.basealt.ru: Exception while executing '/usr/lib/puppet-modules/theforeman-foreman/files/external_node_v2.rb': Cannot run program "/usr/lib/puppet-modules/theforeman-foreman/files/external_node_v2.rb" (in directory "."): error=2, No such file or directory Could not retrieve catalog; skipping run
О: Отстствует модуль puppet-а называемый theforeman-foreman, установие его так:
# apt-get install puppet-theforeman-foreman
В: Почему при запуске службы Puppet у меня вылезают предупреждения при получении статуса службы (**systemctl status puppet**):
Unable to fetch my node definition, but the agent run will continue: Error 500 on SERVER: Server Error: Failed to find dno.office.basealt.ru via exec: Execution of '/usr/lib/puppet-modules/theforeman-foreman/files/external_node_v2.rb dno.office.basealt.ru' returned 1: Could not retrieve catalog from remote server: Error 500 on SERVER: Server Error: Failed when searching for node dno.office.basealt.ru: Failed to find dno.office.basealt.ru via exec: Execution of '/usr/lib/puppet-modules/theforeman-foreman/files/external_node_v2.rb dno.office.basealt.ru' returned 1: Could not retrieve catalog; skipping run
О: Ваш foreman не настроен для работы с текущей конфигурацией puppet, вам нужно отключить службу внешних узлов в **/etc/puppet/puppet.conf** так:
# external_nodes = /usr/lib/puppet-modules/theforeman-foreman/files/external_node_v2.rb # node_terminus = exec
и перезапустить puppet после перезапуска puppetserver. После чего при необходимости установите facter настройте Foreman и Smart-proxy
В: При запуске puppet с ключём apply и манифестом site вылезает ошибка о невозможности соединиться с сервером foreman:
# puppet apply /etc/puppet/environments/production/manifests/site.pp /usr/lib/ruby/gems/2.7.0/gems/facter-2.5.7.1/lib/facter/ec2/rest.rb:28: warning: calling URI.open via Kernel#open is deprecated, call URI.open directly or use URI#open Warning: Facter: Error loading fact /usr/lib/puppet-modules/theforeman-foreman/lib/facter/sssd.rb: cannot load such file -- facter/util/sssd /usr/lib/ruby/gems/2.7.0/gems/facter-2.5.7.1/lib/facter/ec2/rest.rb:28: warning: calling URI.open via Kernel#open is deprecated, call URI.open directly or use URI#open /usr/lib/ruby/gems/2.7.0/gems/facter-2.5.7.1/lib/facter/ec2/rest.rb:28: warning: calling URI.open via Kernel#open is deprecated, call URI.open directly or use URI#open Notice: Compiled catalog for dno.office.basealt.ru in environment production in 0.03 seconds Notice: /Stage[main]/Main/File[/etc/passwd]/group: group changed 'root' to 'bin' Notice: Applied catalog in 0.06 seconds Error: Report processor failed: Could not send report to Foreman at http://dno.office.basealt.ru:2345/api/config_reports: Failed to open TCP connection to dno.office.basealt.ru:2345 (Connection refused - connect(2) for "dno.office.basealt.ru" port 2345) ["/usr/lib/ruby/net/http.rb:960:in `initialize'", "/usr/lib/ruby/net/http.rb:960:in `open'", "/usr/lib/ruby/net/http.rb:960:in `block in connect'", "/usr/lib/ruby/timeout.rb:95:in `block in timeout'", "/usr/lib/ruby/timeout.rb:105:in `timeout'", "/usr/lib/ruby/net/http.rb:958:in `connect'", "/usr/lib/ruby/net/http.rb:943:in `do_start'", "/usr/lib/ruby/net/http.rb:932:in `start'", "/usr/lib/ruby/net/http.rb:1483:in `request'", "/usr/lib/ruby/gems/2.7.0/gems/puppet-7.3.0/lib/puppet/reports/foreman.rb:69:in `process'", "/usr/lib/ruby/gems/2.7.0/gems/puppet-7.3.0/lib/puppet/indirector/report/processor.rb:37:in `block in process'", "/usr/lib/ruby/gems/2.7.0/gems/puppet-7.3.0/lib/puppet/indirector/report/processor.rb:54:in `block in processors'", "/usr/lib/ruby/gems/2.7.0/gems/puppet-7.3.0/lib/puppet/indirector/report/processor.rb:51:in `each'", "/usr/lib/ruby/gems/2.7.0/gems/puppet-7.3.0/lib/puppet/indirector/report/processor.rb:51:in `processors'", "/usr/lib/ruby/gems/2.7.0/gems/puppet-7.3.0/lib/puppet/indirector/report/processor.rb:30:in `process'", "/usr/lib/ruby/gems/2.7.0/gems/puppet-7.3.0/lib/puppet/indirector/report/processor.rb:14:in `save'", "/usr/lib/ruby/gems/2.7.0/gems/puppet-7.3.0/lib/puppet/indirector/indirection.rb:316:in `save'", "/usr/lib/ruby/gems/2.7.0/gems/puppet-7.3.0/lib/puppet/configurer.rb:476:in `send_report'", "/usr/lib/ruby/gems/2.7.0/gems/puppet-7.3.0/lib/puppet/configurer.rb:452:in `run_internal'", "/usr/lib/ruby/gems/2.7.0/gems/puppet-7.3.0/lib/puppet/configurer.rb:246:in `run'", "/usr/lib/ruby/gems/2.7.0/gems/puppet-7.3.0/lib/puppet/application/apply.rb:342:in `apply_catalog'", "/usr/lib/ruby/gems/2.7.0/gems/puppet-7.3.0/lib/puppet/application/apply.rb:254:in `block in main'", "/usr/lib/ruby/gems/2.7.0/gems/puppet-7.3.0/lib/puppet/context.rb:62:in `override'", "/usr/lib/ruby/gems/2.7.0/gems/puppet-7.3.0/lib/puppet.rb:306:in `override'", "/usr/lib/ruby/gems/2.7.0/gems/puppet-7.3.0/lib/puppet/application/apply.rb:208:in `main'", "/usr/lib/ruby/gems/2.7.0/gems/puppet-7.3.0/lib/puppet/application/apply.rb:178:in `run_command'", "/usr/lib/ruby/gems/2.7.0/gems/puppet-7.3.0/lib/puppet/application.rb:421:in `block in run'", "/usr/lib/ruby/gems/2.7.0/gems/puppet-7.3.0/lib/puppet/util.rb:735:in `exit_on_fail'", "/usr/lib/ruby/gems/2.7.0/gems/puppet-7.3.0/lib/puppet/application.rb:421:in `run'", "/usr/lib/ruby/gems/2.7.0/gems/puppet-7.3.0/lib/puppet/util/command_line.rb:143:in `run'", "/usr/lib/ruby/gems/2.7.0/gems/puppet-7.3.0/lib/puppet/util/command_line.rb:77:in `execute'", "/usr/bin/puppet:5:in `<main>'"]
О: Настроить foreman и запустить его службу.
В: У меня при запуске
puppet agent -t
вылезает ошибка:
Error: Could not retrieve catalog from remote server: Error 500 on SERVER: Server Error: Failed when searching for node predvridlo.office.basealt.ru: Failed to find predvridlo.office.basealt.ru via exec: Execution of '/usr/lib/puppet-modules/theforeman-foreman/files/external_node_v2.rb predvridlo.office.basealt.ru' returned 1: Warning: Not using cache on failed catalog Error: Could not retrieve catalog; skipping run
А при прямом запуске node.rb:
# /usr/lib/puppet-modules/theforeman-foreman/files/external_node_v2.rb predvridlo.office.basealt.ru predvridlo.office.basealt.ru: During the fact upload the server responded with: 403 Forbidden. Error is ignored and the execution continues. { "error": {"message":"Access denied","details":"Missing one of the required permissions: upload_facts","missing_permissions":["upload_facts"]} } Error retrieving node predvridlo.office.basealt.ru: Net::HTTPForbidden Check Foreman's /var/log/foreman/production.log for more information.
Как лечить?
О:
1. Вам необходимо добавить значение имена машины, с которой производится запуск, в доверенные хосты (trusted hosts), которые находятся на странице форемана в Администратор -> Параметры -> Безопасность и проверка подлинности.
2. Проверить в форемане, что капсула (smart-proxy) с адресом, одкуда производится запуск скрипта, имеет минимум одно из 4-х свойств: **Puppet**, **Ansible**, **Chef**, **Salt**. Если отсутствуют, настроить капсулу на поддержку одного из свойств. В крайнем случае, в настройках капсул необходимо добавить:
:restrict_registered_smart_proxies: false
В: У меня при запуске
puppet agent -t
выдается ошибка:
#puppet agent -t WARN: Unresolved specs during Gem::Specification.reset: scanf (~> 1.0) WARN: Clearing out unresolved specs. Please report a bug if this causes problems. Warning: Unable to fetch my node definition, but the agent run will continue: Warning: Error 500 on SERVER: Server Error: Exception while executing '/usr/lib/puppet-modules/theforeman-foreman/files/external_node_v2.rb': Cannot run program "/usr/lib/puppet-modules/theforeman-foreman/files/external_node_v2.rb" (in directory "."): error=2, No such file or directory Info: Retrieving pluginfacts Info: Retrieving plugin Error: Could not retrieve catalog from remote server: Error 500 on SERVER: Server Error: Failed when searching for node sample.server.name: Exception while executing '/usr/lib/puppet-modules/theforeman-foreman/files/external_node_v2.rb': Cannot run program "/usr/lib/puppet-modules/theforeman-foreman/files/external_node_v2.rb" (in directory "."): error=2, No such file or directory Warning: Not using cache on failed catalog Error: Could not retrieve catalog; skipping run
О: Причина в том, что не может запуститься скрипт конфигурации подключаемых хостов для foreman
Закомметируйте строки в файле /etc/puppet/puppet.conf
# external_nodes = /usr/lib/puppet-modules/theforeman-foreman/files/external_node_v2.rb # node_terminus = exec
После изменений перезапустите puppetserver
В: При запуске puppet agent -t агент выдаёт ошибку:
Error: Could not send report: certificate verify failed [unable to get local issuer certificate for CN=puppet.test.loc]
О: Данная ошибка появляется после пересоздания сертификата на сервере. Для исправления на агенте нужно удалить каталог /etc/puppet/ssl и повторно запустить тест:
# rm -rf /etc/puppet/ssl # puppet agent --test --verbose