Как заставить кнопку 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)' (устарело).

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