Как изменить порт веб-интерфейса Puppet Enterprise, чтобы не конфликтовать с моим существующим веб-сервером Apache

На моем текущем сервере CentOS 7 уже работает веб-сервер Apache 2.4x, использующий порты по умолчанию 80 и 443. Версия Puppet Enterprise 2019.x, использующая nginx (точнее, pe-nginx), по умолчанию настроена на использование точно таких же портов. .

Что нужно изменить, чтобы веб-сервер pe-nginx использовал порты 8090 и 444 вместо стандартных 80 и 443?

Согласно: https://puppet.com/docs/pe/2019.0/config_console.html Я должен отключить перенаправление HTTPS. Вот инструкции, которые я пробовал:

Веб-сервер pe-nginx по умолчанию прослушивает порт 80. Если вам нужно запустить собственную службу на порту 80, вы можете отключить перенаправление HTTPS.

Отредактируйте файл Hiera.yaml, чтобы отключить перенаправление HTTP.

puppet_enterprise::profile::console::proxy::http_redirect::enable_http_redirect: false

Это измененный файл: /etc/puppetlabs/code/environments/production/hiera.yaml

---
version: 5
defaults:
  # The default value for "datadir" is "data" under the same directory as the hiera.yaml
  # file (this file)
  # When specifying a datadir, make sure the directory exists.
  # See https://puppet.com/docs/puppet/latest/environments_about.html for further details on environments.
  # datadir: data
  # data_hash: yaml_data
hierarchy:
  - name: "Per-node data (yaml version)"
    path: "nodes/%{::trusted.certname}.yaml"
  - name: "Other YAML hierarchy levels"
    paths:
      - "common.yaml"
puppet_enterprise::profile::console::proxy::http_redirect::enable_http_redirect: false

Я новичок в yaml, но вижу, что это, вероятно, неправильно, но все равно попробовал.

В нем не сказано, что делать после изменения файла для реализации изменения, вот что я пробовал:

puppet infrastructure configure --recover 
Notice: Unable to recover PE configuration: The Lookup Configuration at '/etc/puppetlabs/code/environments/production/hiera.yaml' has wrong type, unrecognized key 'puppet_enterprise::profile::console::proxy::http_redirect::enable_http_redirect'
2019-05-07T15:41:29.722+00:00 - [Notice]: Compiled catalog for tadm10-adm.test.hfgs.net in environment enterprise in 2.08 seconds
2019-05-07T15:41:42.489+00:00 - [Notice]: Applied catalog in 12.05 seconds
netstat -tulpn | grep -v tcp6|grep ":443\|:80\|:8090\|:444"
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      32272/nginx: master 

person Phil    schedule 07.05.2019    source источник
comment
Я не знаком с настройкой версии PE, но вы определенно изменяете не тот файл. Обратите внимание, что вы изменили значение документов, удалив форматирование, которое в оригинале различает Hiera и .yaml как отдельные описания файла, который вы должны изменить, а не имя файла. Вы изменили файл конфигурации для подсистемы Puppet Hiera. То, что вы должны изменить, — это один из связанных файлов данных, которые обычно находятся на один каталог глубже. Документы предлагают подкаталог hieradata/, но сам файл конфигурации, похоже, указывает data/.   -  person John Bollinger    schedule 07.05.2019
comment
Кроме того, возможно, это имеет смысл при установке PE, но мне кажется странным, что конфигурация должна находиться в файле данных для каждой среды. Hiera также поддерживает глобальные данные, и я бы предположил, что такая деталь будет записана.   -  person John Bollinger    schedule 07.05.2019
comment
Спасибо, Джон, за понимание. Я считаю, что местоположение hiera.yaml правильное, поэтому я проверил каталог данных в этом месте, и в настоящее время он пуст, да ладно. Хотя мне хотелось бы выяснить, как это сделать, у меня есть хорошие новости. Я документирую ответ на этот вопрос с помощью веб-консоли.   -  person Phil    schedule 08.05.2019


Ответы (1)


Хотя я никогда не мог понять, как это сделать, используя предложение Puppet Labs по изменению файла hiera.yaml, я понял, как это сделать с помощью веб-консоли.

Модификации устраняют все конфликты с существующим Apache httpd, который использует порты 80 и 443.

Доступ к веб-консоли PE теперь должен осуществляться через порт 444.

Это исправление:

Из веб-консоли

  1. Выберите Настроить
  2. Выберите классификацию
  3. Выберите значок + с надписью «Инфраструктура PE», чтобы отобразить классы.
  4. Выберите производственную ссылку PE Console
  5. Выберите вкладку Конфигурация
  6. В разделе "Классы" - Добавить новый класс
  7. Выберите «puppet_enterprise::profile::console::proxy::http_redirect» из списка.
  8. Нажмите кнопку Добавить класс
  9. Выберите зафиксировать 1 изменение
  10. Новый класс теперь отображается на странице,
  11. Выберите имя параметра: enable_http_redirect из списка
  12. Установите значение «ложь»
  13. Добавить параметр
  14. Выберите зафиксировать 1 изменение

  15. Выберите имя параметра: ssl_listen_port из списка

  16. Установите значение 444
  17. Добавить параметр
  18. Выберите зафиксировать 1 изменение

При запуске puppet agent -t я получаю сообщение об ошибке, как показано ниже.

Duplicate declaration: Class[Puppet_enterprise::Profile::Console::Proxy::Http_redirect] is already declared; 
cannot redeclare (file: /opt/puppetlabs/puppet/modules/puppet_enterprise/manifests/profile/console/proxy.pp, 
line: 211)

Удалите повторяющееся объявление из proxy.pp

Изменить: /opt/puppetlabs/puppet/modules/puppet_enterprise/manifests/profile/console/proxy.pp

#class { 'puppet_enterprise::profile::console::proxy::http_redirect' :
#  ssl_listen_port => Integer($ssl_listen_port),
#}

Перезапустить кукольный агент -t

puppet agent -t

Консольный порт (изменение порта 443)

Из веб-консоли

  1. Настроить
  2. Классификация
  3. Выберите производство PE Infrastructure
  4. Вкладка «Конфигурация»
  5. Класс: puppet_enterprise::profile::console
  6. Добавить параметр
  7. Имя параметра: console_port
  8. Стоимость: 444

Запустите puppet agent -t и проверьте порты

# puppet agent -t
# netstat -tulpn | grep -v tcp6|grep ":443\|:80\|:8090\|:444"
tcp        0      0 0.0.0.0:444             0.0.0.0:*               LISTEN      11182/nginx: master 

Запустить httpd

# systemctl start httpd
# netstat -tulpn | grep -v tcp6|grep ":443\|:80\|:8090\|:444"
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      13353/httpd         
tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      13353/httpd         
tcp        0      0 0.0.0.0:444             0.0.0.0:*               LISTEN      11182/nginx: master 

Доступ к консоли PE Wen теперь осуществляется через порт 444.

https://hostname:444/#/inspect/overview
person Phil    schedule 08.05.2019
comment
Вы можете добавить обе эти настройки в раздел «Данные» группы PE Console, сохранить, а затем запустить кукольный запуск. - person steveax; 16.05.2019