2014-04-18 4 views
2

두 가지 조리법 + 기본 조리법을 사용하여 redis 요리 책을 수정합니다. 기본 레시피에서는 PPA 저장소를 추가하고 apt-get 업데이트 작업을 수행합니다. 요리사 : 명시 적으로 포함 된 요리법의 속성 만 저장하는 방법

노드가 포함 된 경우

는 "서버"조리법, 다음 속성/server.rb]로 만약의 기본값을 저장 : 내가하고 싶은 무엇 는 노드에 대응 가능 조리법 만의 특성을 지속 할 수있다 노드는 "클라이언트"래서 피를 포함하고 속성/client.rb의 기본값을 저장합니다.

설명서가 포함되어 있지 않아도 위의 상황이 발생하는지 아니면 둘 다 저장되는지는 문서가 명확하지 않습니다.

내가 사람들에게 제안한 것은 레시피에만 관련된 node.default [...] 정의를 이동하는 것이며 레시피 자체에 대한 "기본"레시피에는 맞지 않는다는 것을 알게되었습니다. 나는 이것이 논리적이지 않다라고 생각한다.

이 분리를 달성하기위한 "모범 사례"는 무엇입니까?

+0

일반적인 권장 사항입니다. 그렇지 않으면 https://github.com/poise/poise-appenv와 같은 것을 사용할 수 있습니다. –

답변

0

핵심 인용 from Chef's documentation는 "요리 책이 노드에 대해 실행되는 경우, 속성은 모든 파일 노드 객체의 맥락에서 평가 속성에 포함되어 있습니다." (강조 광산). 당신은 조리법에서 노드 (범위)를 사용하는 것으로 이동함으로써 당신이 이야기하고있는 것을 성취 할 수 있습니다. 레디 스 조리법이 사용중인 클라이언트 조리법 서버 조리법 호기심에서

node[:redis][:server][:foo] = "bar"

에 필요한 것들에 대한

node[:redis][:client][:foo] = "bar"

에 필요한 것, 들어

+0

나는 그것을 읽었지만 "평가 된"은 "지속 된"것과 다르다. 제가 생각하기에 제정신이 아닐 수있는 것은 모든 속성을로드해야하지만 해당 조리법이 run_list에 있거나 다른 조리법에서 포함 된 경우에만 지속된다는 것입니다. –

0

?

+0

이것은 내 포크입니다 : https://github.com/brodock/chef-redis, 내가 의존하는 ppa가 "redis-doc"를 더 이상 컴파일하지 않기 때문에 업데이트해야했고, 또한 할 수 없었습니다. 이전에 서버를 설치하지 않고 시스템에 redis-client를 설치하십시오. –

관련 문제