我需要使用 Puppet 在三台计算机之间建立网络:
- 节点 A 通过防火墙连接到节点 B
- 节点 B 通过防火墙连接到节点 A,并连接到节点 C
- 节点 C 连接到节点 B
这怎么可能呢?我之前从来没有设置过网络,除了拆开 WiFi 路由器。
Puppet 是一种工具,通常在您确定了流程或配置后用于自动化流程和配置。您似乎不确定自己想要做什么。知道这是 Windows 还是 Linux(或 Mac)会有所帮助。您完成了物理布线吗?这些计算机都在同一个子网上吗?您是否考虑过 IP 寻址方案?在我看来,您提供的信息远远不够。
---格雷格·利文塔尔
这些(虚拟)机器位于 VM 服务器(vSphere)上,它们都是(克隆的)RHEL 5.9。我已经“识别”了配置,但我不太确定我说的是什么意思已安装 PostGIS或者B 连接到 C。因此,从这个意义上说,我没有确定配置,而是确定了需要发生什么。我完全缺乏流程。
我想说的是:
192.168.<dev-no>.<node-no>
dev-no=0 => master
node-no => 1/A, 2/B, 3/C
节点 A、B 和 C 将为每个开发人员复制。因此,对于理想的网络设置,所有节点 A 将位于一个网络上,而所有节点 B 和 C 将位于另一个网络上。
我为我的无知道歉;我只是个实习生,我认为我被赋予的任务有点超出我的能力。(但这是真正学习任何东西的唯一方法新的。
答案1
Puppet 是一种工具,通常在您确定了流程或配置后用于自动化流程和配置。您似乎不确定自己想要做什么。知道这是 Windows 还是 Linux(或 Mac)会有所帮助。您完成了物理布线吗?这些计算机都在同一个子网上吗?您是否考虑过 IP 寻址方案?在我看来,您提供的信息远远不够。
在 Red Hat Linux 中,您通常会在文件中定义单个计算机的网络设置/etc/sysconfig/network-scripts/ifcfg-eth0
(假设您希望定义第一个网络接口 eth0 )。您通常会使用 puppet 来自动执行冗余任务,或强制特定配置文件保持正确的设置,并在修改后恢复到正确状态。通常,puppet 主服务器会每 30 分钟检查一次文件的更改并恢复一次。对于 puppet 来说,这是一项奇怪的任务,因为将 IP 地址分配给几台机器是一次性任务。
如果您必须在 Puppet 中执行此操作,则可以考虑使用 erb 模板来执行此/etc/sysconfig/network-scripts/ifcfg-eth0
文件。
问题是每台机器都必须有一个唯一的 IP 地址,如 192.168.1.2、192.168.1.3、192.168.1.4 等等。恕我直言,我相信这项任务可能涉及太多您不熟悉的因素。您还可以使用 puppet 让某些服务监听相关文件的更改。在这种情况下,您希望/etc/init.d/network
在修改 ifcfg-eth0 文件后重新加载服务,添加 IPADDR=192.168.1.X 条目,其中 X 是一个唯一数字。
答案2
一般来说,你不会使用 Puppet 来配置系统的网络——你当然能 正如 Gregg 在他的回答中指出的那样,但这是一个先有鸡还是先有蛋的问题:
- Puppet 通过网络运行,因此 Puppet 要求机器连接到网络。
- 您想使用 Puppet 来配置网络,这大概意味着该机器不在网络上。
- Puppet 通过网络运行(转至 1)
由于 IP 配置通常是一次性的事情,并且我必须至少手动执行一次才能打破上述的“先有鸡还是先有蛋”的循环,因此我通常不会使用 Puppet(或任何其他配置管理工具)来管理它——我会记录哪些机器具有什么地址(与配置管理分开),在构建系统时手动配置系统,此后网络设置就永远不会更改。
这意味着如果我更改 IP 寻址方案,我需要手动登录到每台机器,但这种情况应该很少发生,因此不值得我花时间实施网络配置管理。
如果您希望定期更改机器的 IP 地址,使用 Puppet 管理它们可能对您的环境有意义(但我认为如果您频繁地重新编号机器,那么您可能做错了)。