【问题标题】:Update Chef Attributes at Chef-Client run time在 Chef-Client 运行时更新 Chef 属性
【发布时间】:2020-06-28 19:16:42
【问题描述】:

大家好,我目前正在尝试在厨师客户端运行时更新我的​​食谱属性之一,在我的食谱中。但是,我不认为我这样做是正确的,而且我不知道这是否可能。这是我正在尝试的:

我的 Attributes/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"

试图用从 ssm 参数存储中提取的任何内容覆盖默认的['jenkins']['master']['endpoint'] 属性。

请帮忙。

【问题讨论】:

    标签: chef-infra chef-recipe


    【解决方案1】:

    我的一位同事帮助我解决了这个问题,并建议我将其放入 ruby​​_block 资源中,下面的 sn-p 代码如下:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-02-14
      • 1970-01-01
      • 1970-01-01
      • 2018-09-15
      • 2015-09-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多