কিছু অবস্থার (যেমন অন্য ভেরিয়েবলের মান) অনুযায়ী কোনও ভূমিকা ভেরিয়েবলের ডিফল্ট মান পরিবর্তন করা সম্ভব?
বিস্তারিত
কমান্ডের জন্য আমার দুটি সম্পর্কিত ভেরিয়েবল রয়েছে env
এবং composer_opts
।
যদি উভয়ই ডিফল্ট ( env = "prod"
এবং composer_opts = "--no-dev"
) এ রেখে যায় তবে সবকিছু ঠিক আছে।
যদি আমি পরিবর্তন env
করতে dev
, অন্যান্য এক জন্য ডিফল্ট, আমার আদেশ ভঙ্গ তাই আমি সবসময় উভয় সেট করতে হবে। কাস্টম স্ক্রিপ্ট / যদি দিয়ে শর্তসাপেক্ষে ডিফল্ট মান সেট করে এটি এড়ানো সম্ভব হবে?
গুরুত্বপূর্ণ: আমি সর্বদাcomposer_opts
মান অনুযায়ী মান নির্ধারণ করতে চাই না env
। আমি এটি সেট করতে চাই যদি এটি ইতিমধ্যে সেট না করা হয় (যেমন একটি গতিশীল ডিফল্ট মান)।
সুডোকোড
আমি এর মতো কিছু করতে চাই (নিম্নলিখিত কোডটি বৈধ নয়, কেবলমাত্র আমার প্রয়োজন প্রকাশ করার জন্য সিউডোকোড)
---
# defaults/main.yml
env: prod
composer_opts:
when: "{{env}}" = 'prod'
'--no-dev --optimize-autoloader --no-interaction'
when: "{{env}}" = 'dev'
''
composer_opts
অবস্থায় সর্বদা খালি স্ট্রিংয়ে সেট হবেenv
, কোনও আসল মান সেটকে ওভাররাইট করে। আমি মনে করি শর্তসাপেক্ষ ভালো বাড়ানো হবে:when: "{{env}}" == 'dev' and "{{composer_opts}}" is undefined
। ভাল লাগছে কি? আপনি কি সেই অনুসারে আপনার প্রশ্নটি উত্সাহিত করতে পারেন?