Используя кукольную панель в качестве
0 голосов вниз любимый
Я использую множественную настройку Puppet Master и панель управления Puppet, запущенную на отдельном сервере. Я также настроил приборную панель для использования 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:create_key_pair Сертификат рейка $ sudo -u puppet-dashboard: запрос
Я также отметил, что на самом деле общее имя - это приборная панель, а не puppet-dashboard, которая является моим c-именем в DNS. Теперь я могу успешно выполнить следующую команду.
/usr/bin/env PUPPET_DASHBOARD_URL=https://dashboard /usr/share/puppet-dashboard/bin/external_node puppet.domain.net
Однако, если я запускаю ту же команду, используя любой другой узел, кроме master-сервера puppet или сервера puppet-dashboard, я получаю ошибку SSL, я полагаю, так как другие узлы puppet в среде не осведомлены или сертификаты puppet, созданные инструментом rake включить HTTPS на приборной панели.
Следовательно, какие сертификаты я должен использовать в файле external_node?
В дополнение к этому, у меня есть среда песочницы с puppet-dashboard, которая работает только с использованием http. У меня есть настройка, работающая, указав путь к external_node, заданный правильно в puppet.conf, и настроив файл external_node для использования HTTP. Так что при использовании панели мониторинга на HTTPS определенно что-то не так.
Большое спасибо - Оли
1 ответ
Мне удалось это исправить. Как только все настройки были правильными, все работало нормально.
Основными областями были - externode_node должен быть на всех марионеточных мастерах и на сервере панели марионеток. Расположение сертификатов должно быть тем, которое создается инструментами граблей при включении https на панели инструментов. Вы можете увидеть их в файле settings.yml на сервере панели мониторинга. Убедитесь, что в DASHBOARD_URL вы используете общее имя в сертификате, созданном инструментом rake, в большинстве случаев это панель инструментов. При желании вам может потребоваться установить c-имя для приборной панели или A-записи. Убедитесь, что рабочий скрипт external_node скопирован на все главные серверы Puppet и одинаков. Я использовал расположение /usr/share/puppet-dashboard/bin/external_node. Убедитесь, что URL-адрес - https:// панель мониторинга или 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 на каждом хозяине кукол. Если вы все еще читаете это, удачи!