Как заставить кнопку Run Puppet работать на Foreman?
Прежде всего, я знаю, что здесь уже есть очень похожий вопрос о сбое сервера, но он не совсем отвечает моей проблеме.
Итак, мои настройки следующие: у меня есть один сервер, на котором работает Ubuntu 14.04 LTS и puppet master 3.4.3 с мастером 1.6. Клиент - это компьютер под управлением Windows 7, на котором установлен агент Puppet 3.7.0.
Автоматические прогоны работают нормально, у меня просто проблемы с получением Run Puppet
кнопка работает. Я всегда получаю это красное наложение с этим сообщением:
failed to execute puppetrun: ERF12-4252 [ProxyAPI::ProxyException]: Unable to execute Puppet run ([RestClient::InternalServerError]: 500 Internal Server Error) for proxy https://puppetmaster:8443/puppet
Я следовал инструкциям вики и добавил на узел файл auth.conf, которого раньше не было. Я положил это C:\ProgramData\PuppetLabs\puppet\etc\
где находится файл puppet.conf. Я также добавил пустой namespaceauth.conf в этот каталог. На узле и на сервере я активировал listen = true. Я добавил foreman-proxy в файл sudoers. Я перезапустил службу узла и мастера кукловодов несколько раз. Это то место, где все остальные сообщения, которые я обнаружил, гласили: "Теперь у вас есть рабочая кнопка кукольного бега". Кроме меня это не работает.
Единственная запись в журнале, которую я смог найти, была в /var/log/foreman-proxy/proxy.log:
E, [2014-10-20T17:50:53.051681 #1119] ERROR -- : Failed puppet run: Check Log files
Я проверил все файлы журналов, которые смог найти, но не смог найти дополнительную информацию о том, что это за ошибка. Редактировать: добавлена ссылка на вики. 2-е Редактирование: я также проверил коды ошибок мастера, но, к сожалению, полученный код не имеет никакой информации, связанной с ним. (да, я проверил на ошибки связи через прокси - их нет)
3 ответа
Наконец-то удалось запустить его! Похоже код ошибки (ERF12-4252
) соответствует разным ошибкам. У меня были разные неправильные конфигурации, которые возвращали разные ошибки на консоли, но Форман всегда сообщал об одном и том же сообщении.
Способ решить эту проблему для меня заключается в использовании puppet kick <mynode>
команда из командной строки. Там я обнаружил, что мой клиентский сертификат имел опечатку в своем имени и, следовательно, не соответствовал имени хоста.
На Windows-клиенте я сделал то же самое (остановив службу Puppet Windows и запустив агент в окне командной строки Puppet с puppet agent --debug --no-daemonize
чтобы проверить, происходит ли что-нибудь на агенте.
Это также помогло найти правильный каталог для файла auth.conf. При установке агента в Windows файл auth.conf помещается в каталог установки (обычно C:\Program Files\PuppetLabs\Puppet\puppet\conf
), но ожидается в C:\ProgramData\PuppetLabs\puppet\etc
!
Таким образом, копирование файла в это место и добавление необходимых строк сделали свое дело.
path /run
allow puppetmaster.dev.nextgen.local
После этого мне осталось только удалить старый хост в мастере, создать новый сертификат на агенте, подписать его на puppetmaster и добавить новый хост в мастере.
Это сработало для меня, я выбрал Puppetssh источник http://theforeman.org/manuals/1.11/index.html
следуйте этой инструкции из ссылки выше под содержимым puppetssh и отредактируйте следующую строку в файле.
/etc/foreman-proxy/settings.d/puppet
:puppetssh_command: /usr/bin/puppet agent --onetime --no-usecacheonfailure
преобразовать его в
:puppetssh_command: /usr/bin/puppet agent --test
теперь это будет работать как шарм, не стесняйтесь отвечать, если это не сработало ура
Документация о том, как установить различные методы, чтобы заставить 'Run puppet' работать здесь:
Кукольный раздел (4.3.7) Руководства мастера
В настоящее время удаленные прогоны могут быть настроены через 'MCollective', 'Puppetssh' и 'puppetrun (или kick)' (устарело).