Назад | Перейти на главную страницу

с помощью панели инструментов марионетки как оболочки

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 на каждом мастере марионеток. Если вы все еще читаете это, удачи!