30 현재 환경이 "dev"인 경우에만 cookbook_file 리소스를 실행하고 싶습니다. 이것을 어떻게 표현할 수 있습니까? 문서는 이것을 제안합니다 : 레시피에서 다음과 같은 코드 블록이 유용합니다. qa_nodes = search(:node,"chef_environment:QA") qa_nodes.each do |qa_node| # Do useful specific to qa nodes only end 그러나 그것이 내가 원하는 것인지 확실하지 않습니다-그것이 루프라는 사실이 잘못 보인다. chef — 스티브 베넷 소스
46 노드에서 chef_environment Ruby 속성 (일반 Chef 속성이 아님)을 확인하십시오. if node.chef_environment == "dev" # stuff end — 팀 포터 소스 7 특히 chef_environment는 Chef :: Node 객체에서 노드 환경의 값을 반환하는 메서드입니다. 노드 속성이 아니므로 혼동해서는 안됩니다. — jtimberman 감사합니다 @jtimberman. 나는 항상 환경이 노드의 속성이라고 생각했지만 그렇지 않은 것은 합리적입니다. — Tim Potter 3 좋습니다. 원래 질문에 대한 답은을 추가하는 것 only_if { node.chef_environment == "dev" }입니다. 확인했습니다. — Steve Bennett 이 답변을 작동시킬 수 없습니다. 이 문법은 저에게 효과적입니다 : if "#{node.chef_environment}" == "dev" — spuder
2 또 다른 우아한 방법 : if ['production','development'].include? node.chef_environment #do something here end — 일자 소스