0 голосов против избранных
Я использую установку с несколькими мастерами марионеток с панелью управления марионетками, работающей на отдельном сервере. Я также настроил панель управления для использования https с пассажиром. Я хотел бы превратить марионеточную панель управления в ENC.
Я установил следующую конфигурацию для каждого мастера марионеток (прошу прощения за пробелы в ссылке):
node_terminus = exec
external_nodes = /usr/bin/env PUPPET_DASHBOARD_URL=https:// puppet-dashboard /usr/share/puppet-dashboard/bin/external_node
Я отредактировал сценарий ruby external_node и указал URL-адрес https для панели инструментов, однако я получаю эту ошибку на узлах марионетки:
Error: Could not retrieve catalog from remote server: Error 400 on SERVER:
Failed when searching for node ukserver0028.domain.net: Failed to find ukserver0028.domain.net via exec: Execution of '/usr/bin/env PUPPET_DASHBOARD_URL=https://puppet-dashboard /usr/share/puppet-dashboard/bin/external_node ukserver0028.domain.net' returned 127:
Error: Could not retrieve catalog; skipping run
selinux настроен на разрешающий
Я выполнил следующую команду на мастере марионеток
/usr/bin/env PUPPET_DASHBOARD_URL=https://puppet-dashboard /usr/share/puppet-dashboard/bin/external_node ukserver0028.domain.net
но я получаю эту ошибку:
/usr/lib/ruby/1.8/net/http.rb:586:in `connect': SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (OpenSSL::SSL::SSLError)
Это указывало мне на сценарий external_node и путь к сертификатам SSL.
CERT_PATH
PKEY_PATH
CA_PATH
Я отредактировал файл external_node и указал на сертификаты, которые используются SSL дашборда, которые были созданы инструментом rake.
$ sudo -u puppet-dashboard rake cert: create_key_pair $ sudo -u puppet-dashboard rake cert: request
Я также заметил, что общее имя на самом деле - это панель управления, а не марионетка, которая является моим c-именем в DNS. Теперь я могу успешно выполнить следующую команду.
/usr/bin/env PUPPET_DASHBOARD_URL=https://dashboard /usr/share/puppet-dashboard/bin/external_node puppet.domain.net
Однако, если я запускаю ту же команду, используя любой другой узел, кроме мастера марионетки или сервера марионеточной панели, я получаю ошибку SSL, я полагаю, поскольку другие узлы марионетки в среде не знают, или сертификаты марионетки, созданные инструментом rake чтобы включить HTTPS на панели управления.
Следовательно, какие сертификаты я должен использовать в файле external_node?
В дополнение к этому, у меня есть среда песочницы с puppet-dashboard, которая запускается только с использованием http. У меня настройка работает, указав путь к external_node правильно в puppet.conf и настроив файл external_node для использования HTTP. Так что при использовании панели управления на HTTPS определенно что-то не так.
Большое спасибо - Оли
Мне удалось это исправить. Как только вся конфигурация была правильной, все работало нормально.
Основными областями были: externode_node должен быть на всех мастерах марионеток и на сервере панели инструментов марионеток. Расположение сертификатов должно быть тем, что создается инструментами rake при включении https на панели управления. Вы можете увидеть их в файле settings.yml на сервере панели инструментов. Убедитесь, что в DASHBOARD_URL вы используете общее имя в сертификате, созданном инструментом rake, в большинстве случаев приборной панелью. Вам может потребоваться настроить c-name для панели управления или A-record, если вы того пожелаете. Убедитесь, что рабочий сценарий external_node скопирован на все главные серверы марионеток и является одинаковым. Я использовал расположение / usr / share / puppet-dashboard / bin / external_node. Убедитесь, что это https: // dashboard или cn сертификата приборной панели. В противном случае вы получите SSL-имя не соответствует ошибке имени сертификата
В файле puppet.conf на каждом главном сервере есть 2 строки для включения ENC. Это выглядит следующим образом:
node_terminus = exec
external_nodes = /usr/bin/env PUPPET_DASHBOARD_URL=https:// dashboard/usr/share/puppet-dashboard/bin/external_node
См. Имя панели - это то же самое, что имя CN в сертификате панели. Обязательно перезапустите httpd на каждом мастере марионеток. Если вы все еще читаете это, удачи!