如何在傀儡企业整体安装中更改主端口

how to change the masterport in a puppet-enterprise monolithic installation

直到现在我一直在使用puppet-enterprise 3.8.6,我终于可以升级到最新版本(2018.1.3)。
在 Puppet 3.8.6 中,我能够通过

更改主端口
  1. 设置puppet_enterprise::puppet_master_port参数,
  2. 执行傀儡代理(失败),
  3. 停止所有 puppet 服务,
  4. 手动查找 /etc/puppetlabs 和 /opt/puppetlabs 下仍然包含 8140 的配置文件,并在所有地方用新端口值替换该值,
  5. 重新启动所有 Puppet 服务并
  6. 再次执行傀儡代理

这既不好也不容易也不快,但它奏效了。

当我尝试使用最新版本执行此操作时,我在第 6 步发现仍然有一些地方的值被还原并且代理失败,特别是:

puppet:~ # find /etc/puppetlabs/ -name "*.conf" -o -name "*.yaml" | xargs grep 8140 /etc/puppetlabs/console-services/conf.d/console.conf: "url": "https://puppet:8140" /etc/puppetlabs/client-tools/services.conf: "port": 8140, /etc/puppetlabs/client-tools/services.conf: "status_url": "https://puppet:8140/status", /etc/puppetlabs/client-tools/services.conf: "url": "https://puppet:8140/"

我发现这些文件分别由 类 trapperkeeper/console_services.ppcli_config.pp 管理,错误的端口值来自“service_port " 参数,我不明白从哪个 hiera 值读取,但它不默认为 puppet_enterprise::puppet_master_port 参数。

关于如何将 service_port 参数设置为新值的任何提示?或者,有没有更好的方法来更改主端口?

非常感谢
迈克尔

更新:

我现在明白参数 service_port 是一个局部变量,以及 status_port,它们是在迭代中从 class_parameters 读取的。

相关参数在上面几行设置为Puppet_enterprise::Profile::Master::ssl_listen_port,默认为puppet_enterprise::puppet_master_port。所以我还是不明白为什么它不起作用。

最后我设法 运行 傀儡代理,很快将流量从旧端口重定向到新端口,其中:

socat tcp-listen:8140,reuseaddr,fork tcp:localhost:<newport>