如何让 chef 在多个 IP 上监听

如何让 chef 在多个 IP 上监听

我目前正在使用 chef 来评估这样的配置工具是否可以在我们基于 *nix 的环境中提供帮助。

过去几天,我一直在努力解决一个问题,但一直找不到解决办法。基本上,我有 2 个私有网络范围 192.168.1.0/24 和 192.168.2.0/24。有一台服务器 (Ubuntu 14.04.4 LTS) 可以访问这两个网络 (em1 上的 192.168.1.1/24 和 em2 上的 192.168.2.1/24),该服务器正在运行 chef-server。

据我所知,chef 会监听配置了默认路由的接口(此处为 em1 上的 192.168.1.1)。但是,我希望 chef 能够监视两个网络上的服务器。

当我引导到 192.168.2.0/24 上的服务器时,客户端已安装,但客户端没有响应,因为服务器自称 192.168.1.1,而 192.168.2.0/24 看不到它(毕竟它只是一个普通子网)。

有没有办法让 chef 在两个接口上都监听(例如类似“在 0.0.0.0/0 上监听”)?我搜索了整个网络,但只找到了书架等底层服务的解决方案。您对如何在这样的环境中实现配置管理有什么建议吗?

问候 Kenneth

答案1

两周后仍未得到答复,所以我预计没有“简单”的方法来实现目标。

我想分享一下我的“解决方法”。也许这会对那些面临类似问题的人有所帮助。

  • 子网 A:192.168.1.0/24
  • 子网 B:192.168.2.0/24
  • 子网 C:192.168.3.0/24

我添加了一个新的、独立的子网 (C),它有点像 dmz(因为内容是 none,但我希望你能明白)。之后,我为 shorewall 创建了策略,它允许从子网 A 和 B 到新创建的 C 的路由,但不允许向后路由。这样,来自两个网络 A 和 B 的 chef-client 都可以连接到 C 中的 chef-server,但 A 和 B 仍然不允许相互通信。此外,C 不允许联系 A 和 B 后面的系统,因此即使有人劫持了 A 或 B,他仍然无法访问其他子网。虽然这会使添加新节点变得有点复杂,但仍然相当容易(例如,编写一个通用脚本安装 chef-client 并将其连接到服务器或使用本地版本的“knife”)。

这是 shorewall 当前使用的(简化的)策略文件:

#SOURCE         DEST            POLICY             LOG LEVEL        LIMIT:BURST
$FW             A               REJECT             
$FW             B               REJECT             
$FW             C               REJECT             

A               $FW             DROP             
A               B               REJECT             
A               C               ACCEPT             

B               $FW             DROP             
B               A               REJECT             
B               C               ACCEPT             

C               $FW             DROP             
C               A               REJECT             
C               B               REJECT             

# THE FOLLOWING POLICY MUST BE LAST
all             all             DROP             info

毕竟,这不是我正在寻找的解决方案。然而,我越想越喜欢这个解决方案,因为除了防火墙本身之外,没有其他桥接器,而且我们能够部署在两个子网中都有用的软件(例如 RabbitMQ)。

相关内容