Назад | Перейти на главную страницу

Как найти среду Chef в рецепте?

Я хочу запустить ресурс cookbook_file, только если текущая среда - «dev». Как это можно выразить?

Документация предполагает следующее:

В рецепте будет полезен такой блок кода:

qa_nodes = search(:node,"chef_environment:QA")      
qa_nodes.each do |qa_node|                          
    # Do useful specific to qa nodes only
end

Но я не уверен, что именно этого хочу - факт, что это цикл, кажется неправильным.

Посмотрите на атрибут Ruby chef_environment (не обычный атрибут Chef) на узле:

if node.chef_environment == "dev"
  # stuff
end

еще один элегантный способ:

if ['production','development'].include? node.chef_environment
    #do something here
end