문제
그것은 지정 특성 값에서 요리사 솔로 JSON?저는 솔로입니다.json 으로 이루어진 목록과 같은 특성을 지정합니다있다.Chef 설명서를 나타낼 것으로 보인다 그것이 있어야 가능한 나를 위해 무언가를 하는 다음과 같:
{
"hostname": {
"test": "value2"
},
"default_attributes": {
"hostname": {
"test": "value3"
}
},
"override_attributes": {
"hostname": {
"test": "value4"
}
},
"default": {
"hostname": {
"test": "value5"
}
},
"run_list": [
"recipe[hostname::default]"
]
}
그러나 때마다 내가 값에 액세스하려고 하에 내 레시피는:
p node['hostname']['test']
나는 그냥 가치에 정의된 특성/기본입니다.rb 있는 경우,정의하지 않는가,내가 전무 값이다.
는 방법이 있을 참조하려면 이러한 가치입니까?
해결책
노드 데이터에 저장할 수있는 속성의 유일한 속성은 normal
이며, result는 수렴 시작 및 역할, 환경 및 요리 책에서 다시 작성됩니다.당신은 이처럼 보이는 것처럼 원하는 것 :
{
"normal": {
"hostname": {
"test": "something"
}
},
"run_list": [
"recipe[hostname::default]"
]
}
. 다른 팁
가하여 위의 예제를 설정하는 특성에 JSON 파일에 대한 요리사-솔로,그리고 "normal": {...}
블록이 완전히 무시됩니다.실행 목록을 읽었지만,속성의 것 없이 작동합니다.
내 명령어는 다음과 같습니다.
chef-solo -c /path/to/config_file.rb -j /path/to/file.json
내 JSON file:
{
"name": "my_json_file",
"description": "JSON run-list and attributes.",
"normal": {
"my_cookbook": {
"git_branch": "staging"
}
},
"run_list": [
"recipe[my_cookbook::recipe1]",
"recipe[my_cookbook::recipe2]",
]
}
는 동안 수렴 요리사는 곧바로 다시 기본 값은 내부의 attributes/default.rb
.는 JSON 값이 올바르게 입력?지금까지의 유일한 해결 방법을 만들 수있는 새로운 레시피의 각 "git_branch":
특성하고 싶 테스트와 함께 요리사-솔로를 추가하는 것이 업데이트를 실행 목록을 다른 JSON 파일입니다.기본적으로 복사하면 전체 레시피를 변경하는 단일 node.normal['my_cookbook']['git_branch']
값이 있습니다.말할 필요도 없이,이할 수 없는 솔루션입니다.
를 사용하여 요리사 14.0.202
후속 조치 :
json 파일 내의 속성 우선 순위 레벨을 요리사 솔로로 설정하지 않습니다.JSON은 다음과 유사해야합니다 :
{
"name": "my_json_file",
"description": "JSON run-list and attributes.",
"my_cookbook": {
"git_branch": "staging"
},
"run_list": [
"recipe[my_cookbook::recipe1]",
"recipe[my_cookbook::recipe2]",
]
}
.
"normal": {...}
또는 "default_attributes": {...}
등을 포함하지 않으므로 Chef-Solo의 속성이 사용하도록 속성을 전달합니다.