2012-11-14 2 views
3

기계를 요리사 클라이언트로 구성하려면 chef-client cookbook을 사용하고 있습니다. 이 클라이언트를 만들 때 노드 속성을 어떻게 구성합니까?요리사 클라이언트에 노드 속성을 설정하는 방법은 무엇입니까?

나는 원하지 않습니다. knife node edit. 내 목표는 아마 JSON 파일에 뭔가를 추가하여이 노드를 만들 때 노드 속성을 설정하는 것이다.

UPDATE :

내가 요리사 - 클라이언트를 부트 스트랩이 스크립트 (see the gist)를 사용하는 수백 개의 노드를 만드는 오전. 스크립트에있는 Node_name은 각 노드마다 다릅니다. 마찬가지로 사용자 지정 속성을 함께 그룹화 할 노드에 설정하려고합니다.

예를 들어 특정 프로젝트에 속한 모든 노드를 함께 그룹화하려고합니다. 나는 노드에 속성 "project_id"를 추가 할 것을 생각하고 있었다. 그래서 나중에 프로젝트에 속한 모든 노드를 검색 할 수 있습니다. 이는 특정 프로젝트에 속한 모든 db_master 역할/webserver 역할/memcached 역할을 찾으려고 할 때 특히 유용합니다.

그래서 내가하고 싶은 일은 : project_id와 같은 사용자 지정 특성을 노드에 추가 할 수있는 스크립트 (일부 요점에서 본)에 일부 자리 표시자가 있어야합니다. 그게 가능하니?

답변

1

클라이언트에게 역할을 부여하고 거기에 속성을 추가하거나 chef-client의 -j 매개 변수를 사용하여 노드 데이터가 들어있는 .json 파일을 전달하십시오.

+0

요리사 클라이언트를 만들기 위해 내가하고있는 [요점] (https://gist.github.com/4076949)이 있습니다. 속성을 설정하기 위해 "foo_attribute": 노드에 "bar_value"라고 변경하려면 어떻게해야합니까? – Emil

+0

나는 달성하고자하는 것에 대한 세부 사항으로 질문을 업데이트했다. 질문의 "업데이트"섹션을 참조하십시오. 감사. – Emil

4

위의 작업 또는 당신이 속성을 추가하는 속성 또는 태그

을 활용할 수있는 당신의 JSON의 기능을 유지하기 위해

Node[attribute_name] 

같은 것을 사용하여 조리법을 만들 수 모두에서이 같은 것을 사용하여 json 파일을 생성합니다. 속성 이름과 값은 요리사 클라이언트 해시

"chef_client": { 
"server_url": "http://ec2-23-20-173-176.compute-1.amazonaws.com:4000", 
"interval": "20" 
} 

에서 속성을 설정하는에 당신이 연결 한 예에서 매개 변수 또는 CSV/XML 입력

{ 

    "test_attribute" : "testvalue" 
} 

하여 스크립트를 생성 할 수 있습니다 이러한 속성은 일반 노드 속성으로 작성되며 예를 들어 node["chef_client"]["interval"]에 의해 액세스됩니다.

의미가 있습니까?

+0

나는 달성하려는 것의 세부 사항으로 질문을 업데이트했다. 질문의 "업데이트"섹션을 참조하십시오. 감사. – Emil

+0

답변 Emil을 업데이트했습니다. 그것이 당신이 찾고 있었던 것보다 더 같다고 생각하십시오 – PatrickWalker

+0

나는 그것을 시도했는데, 저를 위해 일하지 않았습니다.그 이유는 json 파일이 chef-solo에 사용되기 때문에 chef-solo가 실행 된 후에도 그 노드를 사용하는 노드 속성이 유지되지 않습니다 (잘못된 경우 수정하십시오). chef-solo는'/ etc/chef/client.rb'를 만들고이 새로운 파일을 config로 사용하여 chef-client를 데몬으로 시작합니다. [chef-client 요리 책] (https://github.com/opscode-cookbooks/chef-client)을 볼 수 있습니다. 조리법에서 맞춤 속성을 설정할 수없는 것 같습니다. – Emil

-4

레서피 마우스를 노드 target1에 추가하려고합니다.

knife node run_list add target1 "recipe[mouse]" 

모든 속성과 함께 작동해야합니다.

+1

질문은 방법이 아닌 노드 속성을 추가하는 방법이었습니다 레시피를 노드의 실행 목록에 추가하십시오. –

관련 문제