我尝试在公司防火墙外的一些服务器上运行 Puppet,而 Puppetmaster 位于防火墙内。说服公司 IT 部门为我开放 8140 端口将非常困难(甚至不可能),那么我有什么办法可以让它正常工作呢?
答案1
这是在大型公司工作的乐趣之一。您可能是众多小部门之一的系统管理员,根本不属于 IT 部门。您拨打支持所有 10,000 名桌面工作人员的集中服务台:
你:您好,我想要请求修改办公室主入站防火墙,以允许 192.0.2.0/24 通过端口 8140 访问 10.0.5.0/24。
他们:它是 PC 还是 Mac?
你:什么?不,我请求修改整个办公室的防火墙。我的电脑没有问题。
他们:好的,我希望你做的是进入“开始”菜单并<click>
...
了解 IT 部门的经理。了解在 NOC 工作的人。实际上,走到那里,介绍自己并与他们聊天。在大型公司里完成工作的关键在于你认识谁以及他们有多喜欢你。
现在,当您下次需要完成类似的事情时,不要打电话给公司 IT 部门 - 直接打电话给 IT 副总监或 NetOps 负责人。
IT总监:嘿,布鲁克斯,今天我能为您做些什么?
你:我正在为我们的生产和开发服务器设置一个共享的 Puppet,并且我需要生产中的 Puppet 客户端与办公室中的 Puppet 主机进行对话。
IT总监:好的,只需将 IP 地址详细信息通过电子邮件发送给 NOC 的 John,我会在收到后批准该请求。顺便问一下,你周末的比赛怎么样?
请注意,上述对话不是您明天要进行的对话。这是三个月后您将要进行的对话,届时每个有能力的系统管理员和 IT 经理都会知道您的名字。明天就是开始了解这些人。
当你在培养人际交往能力时,要求傀儡大师就在你的办公室里吗?
为什么不把它放在与客户端相同的位置?这样可以解决您的问题,并且很可能解决延迟和连接中断等其他问题。
答案2
您可以在 443 上运行 puppetmaster。如果您想在 8140 和 443 上运行 master,并且这是一台 Linux 服务器,那么一个不错的选择是使用 iptables。
iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-ports 8140
在代理上,在 puppet.conf 中设置 masterport=443。
答案3
我们的基础设施也存在类似的问题,我们的解决方案是打开 SSH 隧道。例如,您可以通过 localbox 打开隧道。
ssh -L 8140:localhost:8140 $puppetmaster
ssh -R 8140:localhost:80 $host
那是好久以前的事了,但如果我没记错的话那应该会有所帮助。
查看此内容有关 SSH 隧道的文章。