我创建了一个厨师食谱,其中包含了安装的特定rpm。此rpm的版本号需要从属性文件(动态创建)动态加载。然后需要将这个厨师食谱装入厨师服务器。
remote_file "Core_feature.rpm" do
path "#{src_loc}core_feature_v91-2.noarch.rpm"
在这里,v91-2
是需要通过读取属性文件动态进入配方的值。
这可以实现吗?如果是的话,我该如何继续实施呢。(对红宝石一无所知)!
答案 0 :(得分:0)
您有几个选择。在我看来,最好的是使用json文件而不是属性文件。然后,您可以使用chef-client
调用上的normal
标志来读取节点上normal
属性中的json文件。主要的警告是,knife node attribute set ...
属性从一个厨师跑到下一个,所以你需要确保每个厨师都重新设置它们。
或者,您可以让jenkins使用刀直接在节点上设置属性。您需要moment.js properties = IO.read('/path/to/properties/file')
# parse properties and set node attributes like this
node.default[:something] = <your value>
。或者您可以在环境或角色上设置它,如果这些是可行的选项,但它们将涉及从服务器中提取环境或角色,修改它,然后再将其推回。
另一种选择是使用ruby将属性文件作为attribute / xxxx.rb文件的一部分进行读取。然后,您可以在任何先前级别设置节点属性。
sort