Использование шаблонов для динамически настраиваемых значений в многострочном конфигурационном файле

Я пытаюсь создать файл /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. # {Узел [ "узел1"] [ "IP"]}
  2. # {Узел [ "node1"] [ "DNS"]}
  3. # {Узел [ "чистый"] [ "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

На самом деле, это работает так, я в основном ответил на свой собственный вопрос, следовательно, это поможет любому, кто борется с тем же сценарием.

0 ответов

Другие вопросы по тегам