如何更改Puppet Enterprise Web界面端口,以免与现有的Apache Web服务器冲突

时间:2019-05-07 15:59:00

标签: nginx puppet puppet-enterprise

我当前的CentOS 7服务器已经使用默认端口80和443运行Apache Web服务器2.4x。默认情况下,使用nginx(确切地说是pe-nginx)将Puppet Enterprise版本2019.x配置为使用完全相同的端口。

要使pe-nginx Web服务器使用端口8090和444而不是默认的80和443,需要更改什么?

根据:https://puppet.com/docs/pe/2019.0/config_console.html我应该禁用HTTPS重定向。这是我尝试过的说明:

默认情况下,pe-nginx Web服务器侦听端口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 

1 个答案:

答案 0 :(得分:2)

尽管我从来没有想过如何使用Puppet Labs来完成此工作,但我建议修改hiera.yaml文件,但是我已经想出了如何使用Web控制台来做到这一点。

所做的修改消除了与使用端口80和443的现有Apache httpd的所有冲突。

现在将需要通过端口444访问对PE Web控制台的访问

这是解决方法:

从Web控制台

  1. 选择配置
  2. 选择分类
  3. 选择标有“ PE Infrastructure”生产的+图标以显示“班级”
  4. 选择PE Con​​sole生产链接
  5. 选择配置标签
  6. 在“班级”部分下-添加新班级
  7. 从列表中选择“ puppet_enterprise :: profile :: console :: proxy :: http_redirect”
  8. 选择添加课程按钮
  9. 选择提交1次更改
  10. 新类现在显示在页面上,
  11. 从列表中选择参数名称:enable_http_redirect
  12. 将值设置为false
  13. 添加参数
  14. 选择提交1次更改

  15. 从列表中选择参数名称:ssl_listen_port

  16. 将值设置为444
  17. 添加参数
  18. 选择提交1次更改

运行人偶代理-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更改)

从Web控制台

  1. 配置
  2. 分类
  3. 选择PE基础设施生产
  4. “配置”标签
  5. 类别:puppet_enterprise :: profile :: console
  6. 添加参数
  7. 参数名称:console_port
  8. 值:444

运行人偶代理-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 

现在可以通过端口444访问PE Wen控制台

https://hostname:444/#/inspect/overview