কিভাবে একটি রেসিপি মধ্যে শেফ পরিবেশ খুঁজে পেতে?


30

আমি যদি বর্তমান পরিবেশটি "ডেভ" হয় তবেই আমি একটি কুকবুক_ফিল সংস্থান চালাতে চাই। এটি কীভাবে প্রকাশ করা যায়?

ডকুমেন্টেশন এটিকে পরামর্শ দেয়:

একটি রেসিপিতে, এর মতো একটি কোড ব্লক কার্যকর হবে:

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

তবে আমি নিশ্চিত নই যে আমি যা চাই - এটি লুপটিকে ভুল বলে মনে হচ্ছে।

উত্তর:


46

নোডের শেফ_এনভায়রনমেন্ট রুবি অ্যাট্রিবিউট (কোনও নিয়মিত শেফ অ্যাট্রিবিউট নয়) দেখুন:

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

7
বিশেষত, শেফ_এনভায়রনমেন্ট শেফ :: নোড অবজেক্টের একটি পদ্ধতি যা নোডের পরিবেশের মান প্রদান করে। এটি কোনও নোড বৈশিষ্ট্য নয় এবং এর মতো বিভ্রান্ত হওয়া উচিত নয়।
jtimberman

ধন্যবাদ @ জেটিবারম্যান আমি সবসময় একটি পরিবেশ নোডের একটি বৈশিষ্ট্য হিসাবে ভেবেছিলাম কিন্তু এটি যে তা নয় তা বোঝায়।
টিম পটার

3
দুর্দান্ত, এটি কাজ করে। সুতরাং আমার মূল প্রশ্নের উত্তরটি যুক্ত করা only_if { node.chef_environment == "dev" }। নিশ্চিত করেছে।
স্টিভ বেনেট

কাজের এই উত্তরটি পাওয়া যায়নি। এই সিনট্যাক্সটি আমার পক্ষে কাজ করে: if "#{node.chef_environment}" == "dev"
স্পুডার

2

অন্য মার্জিত উপায়:

if ['production','development'].include? node.chef_environment
    #do something here
end
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.