Я имел в виду https://puppet.com/docs/puppet/7.1 /server/scaling_puppet_server.html при создании масштабируемой среды Puppet.

У меня работает Puppet CA, проблема, к которой я обращаюсь, - это шаг 2 с разделом компиляции Puppet, в котором отсутствует достойный пример или детали.

В файле webserver.conf компилятора добавьте и установите следующие параметры SSL:

  • SSL-сертификат
  • ssl-ключ
  • ssl-ca-cert
  • ssl-crl-путь

Компилирующий хост может отправить запрос в ЦС, и после подписания сертификата в ЦС он вернет его обратно. Я не уверен, что поставить для вышеуказанных настроек. Службы CA были отключены на хосте компиляции, как указано, но при попытке запустить pupperserver он не загружается из-за того, что CaService не найден, поэтому на данный момент я предполагаю, что это связано с вышеизложенным.

2021-01-12T13: 12: 34.276 + 11: 00 ERROR [main] [p.t.internal] Ошибка при сборке приложения! java.lang.RuntimeException: Сервис ': CaService' не найден

Поиск в Google мало что дает по этой теме, поэтому будут приветствоваться любые полезные указатели по настройке среды этого типа.

Спасибо.

0
Craig 12 Янв 2021 в 05:17

2 ответа

Лучший ответ

У меня это работает. Что касается настроек webserver.conf, я использовал следующее:

ssl-cert: "/etc/puppetlabs/puppet/ssl/certs/<server FQDN>.pem"
ssl-key: "/etc/puppetlabs/puppet/ssl/private_keys/<server FQDN>.pem"
ssl-ca-cert: "/etc/puppetlabs/puppet/ssl/certs/ca.pem"
ssl-crl-path: "/etc/puppetlabs/puppet/ssl/crl.pem"

К сожалению, я все еще получал ошибку CAService при попытке запустить puppetserver. Это оказалось простой ошибкой. В /etc/puppetlabs/puppetserver/services.d/ca.cfg я правильно закомментировал следующую строку:

# puppetlabs.services.ca.certificate-Author-Service / Certificate-Author-Service

Но я пропустил раскомментирование следующей строки:

puppetlabs.services.ca.certificate-Authority-disabled-service / Certificate-Authority-disabled-service

Как только строка была раскомментирована, марионеточный сервер запустился, и мой тестовый агент смог успешно получить подписанный сертификат от централизованного центра сертификации и конфигурацию от мастера компиляции.

0
Craig 18 Янв 2021 в 05:33

Обзор файла конфигурации webserver.conf представлен в документации Puppet < / а>. Так получилось, что это пример, который охватывает все эти конкретные элементы, и он ссылается на подробная документация.

Одна из основных идей масштабируемости Puppet заключается в том, что вы можете добавлять серверы компиляции в свой пул за балансировщиком нагрузки или циклической службой DNS для общего имени хоста. Но одна из основных проблем заключается в том, что агенты ожидают установления SSL-соединений с сервером компиляции, идентифицированным определенным именем сертификата, поэтому вы должны убедиться, что каждый сервер компиляции имеет сертификат с этим именем. Вместо того, чтобы делиться одним сертификатом между несколькими серверами, это обычно делается путем создания отдельных сертификатов для серверов компиляции, которые все имеют ожидаемое имя в качестве альтернативного имени субъекта DNS . Свойства ssl-cert и ssl-key определяют соответствующий сертификат.

Со своей стороны, серверы компиляции должны подтвердить, что клиентские сертификаты были подписаны ожидаемым ЦС, и для этого им нужен сертификат ЦС. Это то, о чем идет речь в настройке ssl-ca-cert.

Кроме того, время от времени вам может потребоваться отозвать сертификаты - обычно, когда узел агента выводится из эксплуатации или его сертификат каким-то образом утерян. ЦС будет вести список отозванных сертификатов, но чтобы серверы компиляции приняли его во внимание, для них должен быть опубликован список отзыва сертификатов. Параметр ssl-crl-path сообщает каждому мастеру компиляции, где это найти.


Однако я склонен думать, что документы по масштабированию немного не в порядке. За возможным исключением ssl-crl-path, я ожидаю, что значения по умолчанию параметров, описанных в шаге № 2, будут подходящими, при условии, что вы выполните все другие шаги до попытки запустить марионеточный сервер. service на сервере (ах) компиляции, который вы пытаетесь настроить. Последние два шага потребуют, чтобы puppetserver уже был запущен на машине CA и был доступен через все соответствующие брандмауэры; если это не так, это может объяснить ошибку, о которой вы сообщаете. Обратите внимание на комментарии в конце шага 4, если вы ранее запускали компоненты не по порядку.

Если puppetserver по-прежнему не запускается после того, как вы получили необходимый сертификат хоста с помощью шагов 4-6, вам может потребоваться вручную скопировать сертификат сервера CA на сервер компиляции и установить для свойства ssl-ca-cert его местоположение. Я сомневаюсь, что вам нужно будет явно установить ssl-cert или ssl-key, если вы получили сертификат хоста в соответствии с указанной процедурой.

1
John Bollinger 12 Янв 2021 в 23:50