无需 SSH 和 DHCP/DNS 即可配置 Foreman VM

无需 SSH 和 DHCP/DNS 即可配置 Foreman VM

我正在尝试实施 Foreman,以便我们管理和配置我们所管理的客户的服务器,我已在一个中心位置安装了 Foreman,然后在其中一个客户网络内安装了 Foreman 智能代理,一切运行正常(远程 Puppet 代理可以连接到我的智能代理,而我的中央 Foreman 服务器可以查看数据),但是我现在想配置新的虚拟机(通过 vCenter)。我已经安装foreman-vmware并配置了计算资源配置文件,为虚拟机模板创建了一个条目,但是当我通过 Foreman 创建新主机并告诉它从我的模板克隆时,它会挂起,等待节点可用,我假设它可以通过 SSH 连接到它以完成配置,我的问题是 Foreman 服务器无法连接到新的虚拟机,我希望新的虚拟机(安装了 Puppet 代理)将配置为连接到我的智能代理并以此方式完成自身配置?

我的设计有误吗?有人能帮我设计适合我的解决方案吗?

我无法在客户网络上创建新的 DHCP、DNS 和 TFTP 服务器,因为它可能会干扰现有的 DHCP 和 DNS 服务。

谢谢你,本

答案1

tl;dr:目前无法工作,SSH 配置来自 foreman 服务器。

我们有一个类似的配置,我们有一个公共/集中式 Foreman/Puppet 实例,我们将几个“小”客户连接到该实例。在我们的案例中,我甚至没有在客户的网络中安装“智能代理”。客户的 IT 人员实际上向我提供了最小 CentOS 6.x 安装的 SSH 凭据(实际上就像部署映像一样?)。在 Foreman 中,我刚刚将新 VM 创建为“裸机”,然后从主机详细信息屏幕的“模板”选项卡复制完成脚本,并将其粘贴到 VM 中(我必须使用 VPN 通过 SSH 连接到客户端计算机)。在您的案例中,您可能可以做类似的事情,但任何“手动”步骤通常都会被反对。

以下是我在思考这个问题时的一些随机想法:

  • 也许您可以弄清楚如何使用“cloud-init”,然后您就可以“配置”(在 VM 上运行脚本),而无需 Foreman 服务器能够通过 SSH 连接到它。我不确定这如何与 ESXi 配合使用,而且它可能需要一些“自定义代码” :)

  • 也许可以在 foreman 服务器上设置一个 OpenVPN 服务器,并将您的图像设置为自动通过 VPN 连接到 foreman 服务器。这样做的优点是您不需要将 puppet/foreman 暴露给互联网,但同样,可能需要一些自定义代码来尝试找出主机的 VPN IP 以通过 SSH 进入。一些客户也可能认为这是一个漏洞,特别是如果他们试图符合 PCI 标准。

  • 创建一个允许“SSH via”配置的新模块,这样 foreman 服务器就可以ssh -t viaHost ssh $HOST_ADDRESS在配置过程中通过 SSH 连接到特定主机,然后连接到所需的客户端 IP ()。当然,如果您选择这种方式,您可能也可以将其设置为智能代理操作,这样它就不会尝试从 foreman 服务器通过 SSH 连接,而是要求智能代理执行此操作。

这些都是潜在的解决方案,但我认为目前没有任何一个能起作用。在以下网址提交一些功能请求可能是个好主意:http://projects.theforeman.org/projects/foreman/issues

~汤米

答案2

拉取请求#3623Foreman 使用的对抗雾的user_data软件应该能够方便地从具有runcmd入口。

相关内容