2014-02-24 6 views
1

그것은 내가 요리사의 노드 (호스트) 이름을 확인할 수 없습니다 밝혀, 그래서 나는 다음과 같은 수 있도록 최선의 방법을 알아 내려고 노력하고있어 일이 :요리사가 호스트 이름을 확인합니까?

If hostname is X 
ldap_access_filter = memberOf=<%= node['sssd_ldap']['ldap_access_node_filter'] %> 
else 
ldap_access_filter = memberOf=<%= node['sssd_ldap']['ldap_access_filter'] %> 
end 

생각이 그 때입니다 노드 이름 (또는 일치하는 변수)이 참이면 고유 한 값인 ldap_access_node_filter를 사용하고, 그렇지 않으면 기본값을 사용합니다. 나는 기본적으로 sssd config를 구성하고 있으며 호스트 중 하나는 특별한 ldap 액세스 필터가 필요합니다.

더 좋은 방법이 있으면 알려 주시기 바랍니다.

도와주세요.

답변

1

Ohai으로하면 호스트 이름을 가져올 수 있습니까?

특정 노드가 필요하다면 요리사의 속성 우선 순위에 연결할 수있는 것처럼 보입니다. 어쩌면 요리 책 수준에서 속성의 기본값을 설정 한 다음 노드에 명시 적 속성을 설정할 수 있습니다. 또한 서버에 구성 설정을 변경하지 않고이 서버 중 2 개에 값을 설정해야한다는 것을 의미합니다.

2

사용

node.name 

또는

node.name.split('.')[0] 
0

난 그냥이 하나의 호스트 이름에 파일의 특별한 버전을 배포하려고 다 퉜다. 내가 사용하지 않은, only_if

cookbook_file 'file/to/replace' do 
    not_if {node.name == 'host.domain.name'} 
    source 'file_version.4' 
    action :create 
end 

cookbook_file '/file/to/replace' do 
    only_if {node.name == 'host.domain.name'} 
    source 'file_version.5' 
    action :create 
end 
관련 문제