я следующий набор в моих атрибутов файлВызывающие несколько переменных в коде повара
default[:iptables][:ports] = [22,21]
default[:iptables][:ubnet] = ["192.168.0.0/24"]
У меня есть следующие в моем файле template.erb
-A INPUT -i lo -j ACCEPT
<%- node[:iptables][:ports].each do |port| -%>
-A INPUT -m state --state NEW -m tcp -p tcp --dport <%= port %> -j ACCEPT
<%- end -%>
<% node[:iptables][:subnet].each do |subnet| -%>
-A INPUT -m state --state NEW -s <%= subnet %> -m tcp -p tcp --dport <%= port %> -j ACCEPT
<%- end -%>
Я хочу, чтобы в конечном итоге с чем-то вроде это когда я запускаю код
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A INPUT -m state --state NEW -s 192.168.0.0/16 -m tcp -p tcp --dport 25 -j ACCEPT
к сожалению, когда я запускаю код, как есть, я получаю следующее сообщение об ошибке
Chef::Mixin::Template::TemplateError (undefined local variable or method 'port' for #<Chef::Mixin::Template::TemplateContext:0x00000006e7cd80>)
Первая половина кода работает так, как ожидалось, но второй блок дает мне вопросы. Я также не хочу жесткий порт кода 25. Может ли кто-нибудь помочь мне переписать это?
Показать декларацию ресурса 'template' в вашем рецепте! – StephenKing