2013-06-19 6 views
1

내가 Opscode에서 Roles 페이지를 읽고 있었다, 그리고 내가 이해에서 내 역할 파일, 루비 DSL은 다음과 같아야 속성 chef-client이 실행되면 위에 지정된 속성이 구성 파일의 빈 부분을 채우지 않습니다. 요리 책의 이름은 zabbix_agent_corp이고 속성 파일은 default.rb 파일입니다. 다음은 예상되는 속성이 채워 할 수 있습니다 :사용 요리사 역할

default['zabbix']['agent']['conf']['Server'] = "" 
default['zabbix']['agent']['conf']['ServerActive'] = "" 

내가 요리 책의 속성을 호출 다르게해야 할 뭔가가 있나요, 또는 내 역할 파일이 제대로 기록되지 않습니다?

+0

zabbix_agent_corp vs [ 'zabbix'] [ 'agent'] [ 'conf'] 경로의 마지막 부분에서 차이를 느껴보십시오. –

+0

그럼 default_attributes 바로 뒤에있는 것 대신 해시를 넣으시겠습니까? 'default_attributes 'default ['zabbix '] ['agent '] ['conf '] "=>'? – Pred

+0

[Chef : 역할의 기본 속성을 대체하려면 어떻게합니까?] (http://stackoverflow.com/questions/12144592/chef-how-do-i-override-home-home.html)에서 다른 사람과 중복되거나 유사한 게시물이있을 수 있습니다. default-attributes-in-roles) – Pred

답변

4

역할에서 만드는 해시는 속성의 정의와 일치해야합니다.

default_attributes 
    'zabbix' => { 
    'agent' => { 
     'conf' => { 
     'Server' => 'zabbix-server1.com', 
     'ServerActive' => 'zabbix-server1.com' 
     } 
    } 
    } 

완전한 참조를 위해 요리사 문서의 Ruby DSL 섹션을 참조하십시오 : 같은

이 인스턴스에서의 역할이 보일 것입니다.

참고 : Chef 규칙은 속성 이름이 Pascal/CamelCase 대신 밑줄로 모두 소문자 여야한다는 것입니다. 예 : ServerActiveserver_active이어야합니다.

+0

이러한 변수에 대한 Zabbix 이름은 이와 비슷합니다. 그렇지 않으면 그 지침을 따를 것입니다. – Pred