Обновите атрибуты Chef во время выполнения Chef-Client - PullRequest
0 голосов
/ 17 марта 2020

В чем дело, ребята, в настоящее время я пытаюсь обновить один из атрибутов своих поваренных книг во время работы клиента-шеф-повара в моем рецепте. Тем не менее, я не думаю, что я делаю это правильно, и я не знаю, возможно ли это вообще. Вот что я пытаюсь сделать:

Мои атрибуты / default.rb выглядят так:

default['jenkins']['master']['host'] = lazy { node.run_state['jenkinsHost'] } 
default['jenkins']['master']['port'] = 8080 
default['jenkins']['master']['endpoint'] = lazy { "http://#{node['master']['host']}:8080"}

и в моем recipe / default.rb у меня есть следующее:

aws_ssm_parameter_store 'getJenkinsMasterHost' do
    path '/Global/Jenkins/MasterHost'
    return_keys 'jenkinsHost'
    action :get
end

node.run_state[:jenkins_master_endpoint] = "http://#{node.run_state['jenkinsHost']}:8080"

пытается переопределить атрибут по умолчанию ['jenkins'] ['master'] ['endpoint'] тем, что будет удалено из хранилища параметров ssm.

Пожалуйста, помогите.

1 Ответ

0 голосов
/ 17 марта 2020

Один из моих коллег помог мне с этим и порекомендовал поместить это в ресурс ruby_block со следующим фрагментом кода ниже:

ruby_block 'update jenkins endpoint' do
  block do
    node.override['jenkins']['master']['endpoint'] = "http://#{node.run_state['jenkinsHost']}:8080"
  end
  action :run 
end
...