Использование шаблонов для динамически настраиваемых значений в многострочном конфигурационном файле
Я пытаюсь создать файл /etc/chef-backend/chef-backend.rb
publish_address "10.10.10.10"
postgresql.md5_auth_cidr_addresses = ["samehost", "samenet", "10.10.10.0/24"]
Теперь в атрибутах я объявил:
default ["node1"] ["ip"] = "10.10.10.10" default ["node1"] ["dns"] = "chef-node1.company.com" default ["net"] ["cidr"] = "10.10.10.0/24"
так что я могу использовать следующее в моем рецепте:
- # {Узел [ "узел1"] [ "IP"]}
- # {Узел [ "node1"] [ "DNS"]}
- # {Узел [ "чистый"] [ "CIDR"]}
Поскольку я не хочу жестко задавать IP-адреса и DNS-имена в рецепте.
Но я не уверен, как я могу использовать атрибуты в шаблонах.
Я могу создать шаблоны / default / chef-backend.rb.erb как
publish_address "<%= node['node1']['ip'] %>"
postgresql.md5_auth_cidr_addresses = ["samehost", "samenet", "<%= node["cider"]["ip"] %>"]
Затем используйте следующее в recipe / default.rb
template '/etc/chef-backend/chef-backend.rb' do
source 'chef-backend.rb.erb'
end
На самом деле, это работает так, я в основном ответил на свой собственный вопрос, следовательно, это поможет любому, кто борется с тем же сценарием.