Is it possible to specify attribute values in Chef Solo's JSON? I have a solo.json with a run list and I would like to specify the attributes there. The Chef documentation seems to indicate it should be possible for me to do something like:
{
"hostname": {
"test": "value2"
},
"default_attributes": {
"hostname": {
"test": "value3"
}
},
"override_attributes": {
"hostname": {
"test": "value4"
}
},
"default": {
"hostname": {
"test": "value5"
}
},
"run_list": [
"recipe[hostname::default]"
]
}
However, whenever I try to access the value in my recipe:
p node['hostname']['test']
I just get the value defined in attributes/default.rb, and if I do not define it there, I get a nil value back.
Is there a way to reference these values?
The only level of attributes you can store in the node data is normal
, everything else is reset at the start of the converge and rebuilt from roles, environments, and cookbooks. You want something like looks like this:
{
"normal": {
"hostname": {
"test": "something"
}
},
"run_list": [
"recipe[hostname::default]"
]
}