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 ルールの場合、2 つの異なるクラスのルールが必要です。パブリック インターフェイスに適用され、別のセットをプライベート インターフェイスに適用するルール。レシピ内でそれを理解するのではなく、json 構成ファイルを介してすべてのインターフェイスをシェフに渡す必要がありますか?