我正在使用 Chef 自动部署各种 SmartOS 区域。我试图找出确定网络接口是否具有公共或私有地址并跟踪它的正确方法。对于通用 Apache Listen 和 NameVirtualHost 指令,以下内容就足够了:
ips = []
links = %x{dladm show-vnic -o link | grep -v LINK}.strip.split("\n")
links.each do |link|
ips << %x{ifconfig #{link} | grep inet | awk '{ print $2 }'}.strip
end
对于 ipfilter 规则,我需要有两类不同的规则。应用于公共接口然后将不同的集合应用于私有接口的规则。我应该通过 json 配置文件将所有接口传递给厨师,而不是在食谱中弄清楚吗?