刚从 Amazon 转移到 Joyent(不管为什么)并设置我的 Chef 服务器时发现以下问题:
您可能知道,Chef 根据路由表设置 IP 地址。因此,在我的例子中,客户端通知服务器的 IP 是我的公网 IP。
我有一个方法,可以使用客户端提供的 IP 和 FQDN 动态写入 /etc/hosts 文件。问题是,我需要使用私有 IP,这样到达本地计算机的所有流量实际上都是本地的。
我尝试node['network']['ipaddress_eth1']
在 hosts.erb 模板文件上使用,但是不起作用。
我错过了什么云?还有其他方法可以使用我的私有 IP 写入主机文件吗?
谢谢
更新
其实有一种方法可以找到我想要的东西,使用舍夫:
chef > asdf = node['network']['interfaces']['eth1']['addresses'].keys.select { |a| a[/\A\d+\.\d+\.\d+\.\d+\Z/] }.first
这将返回我的 eth1 上的 IP 地址。
答案1
为了解决这个问题我使用了ipaddr_extensions 宝石然后添加私有IP地址归因于ohai。