Прежде всего, я знаю, что здесь уже есть очень похожий вопрос о serverfault, но он не совсем отвечает на мою проблему.
Итак, моя установка следующая: у меня есть один сервер, на котором запущена Ubuntu 14.04 LTS и puppet master 3.4.3 с foreman 1.6. Клиент - это компьютер под управлением Windows 7 с марионеточным агентом 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-е изменение: я также проверил Коды ошибок мастера, но, к сожалению, полученный мной код не содержит связанной с ним информации. (да, проверял на наличие ошибок связи с прокси - их нет)
это сработало для меня, я выбрал марионеточный источник http://theforeman.org/manuals/1.11/index.html#4.3.6Puppet
следуйте этой инструкции из приведенной выше ссылки под содержимым puppetssh теперь отредактируйте следующую строку в файле.
/etc/foreman-proxy/settings.d/puppet
:puppetssh_command: /usr/bin/puppet agent --onetime --no-usecacheonfailure
преобразовать это в
:puppetssh_command: /usr/bin/puppet agent --test
теперь он будет работать как шарм, не стесняйтесь отвечать, если это не сработало, ура
Документация о том, как установить различные методы для работы «Запуск марионетки», находится здесь:
Кукольный раздел (4.3.7) Руководства мастера
В настоящее время удаленные запуски можно настроить с помощью «MCollective», «Puppetssh» и «puppetrun (or kick)» (устарело).
Наконец-то удалось запустить его! Вроде код ошибки (ERF12-4252
) соответствует разным ошибкам. У меня были разные неправильные конфигурации, которые возвращали разные ошибки на консоли, но Foreman всегда возвращал одно и то же сообщение.
Для меня способ решить эту проблему заключался в использовании puppet kick <mynode>
команда из командной строки. Там я обнаружил, что в моем клиентском сертификате есть опечатка в имени и, следовательно, он не соответствует имени хоста.
На клиенте Windows я сделал то же самое (остановил службу марионетки Windows и запустил агент в окне командной строки марионетки с помощью 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
После этого мне оставалось только удалить старый хост в foreman, создать новый сертификат на агенте, подписать его на puppetmaster и добавить новый хост в foreman.