মাইকেল ডিহান ( উত্তরীয় স্রষ্টা) কোডারওয়ালে একটি পোস্ট করেছিলেন যা খুব অনুরূপ ইস্যু নিয়ে কথা বলে। আপনি এটি আপনার প্রয়োজন অনুসারে এডজাস্ট এবং প্রসারিত করতে পারেন (যেমন অনুমতি এবং মালিকানা)। পোস্টের প্রাসঙ্গিক অংশটি এখানে:
এটি " with_items
" এবং একটি একক notify
বিবৃতি ব্যবহার করে সরল করা যায় । যদি কোনও কাজের পরিবর্তন হয় তবে প্লেবুক চালুর শেষে পরিষেবাটি ঠিক একইভাবে জানানো হবে।
- name: template everything for fooserv
template: src={{item.src}} dest={{item.dest}}
with_items:
- { src: 'templates/foo.j2', dest: '/etc/splat/foo.conf' }
- { src: 'templates/bar.j2', dest: '/etc/splat/bar.conf' }
notify:
- restart fooserv
নোট করুন যেহেতু আমাদের একাধিক অনন্য আর্গুমেন্ট নিয়ে কাজ করে তাই আমরা item
' template:
' লাইনে কেবল " " বলি না , তবে with_items
একটি হ্যাশ (অভিধান) ভেরিয়েবল দিয়ে ব্যবহার করি । আপনি যদি চান তবে তালিকাগুলি ব্যবহার করে এটিকে আরও খাটো রাখতে পারেন। এটি একটি শৈলীগত পছন্দ:
- name: template everything for fooserv
template: src={{item.0}} dest={{item.1}}
with_items:
- [ 'templates/foo.j2', '/etc/splat/foo.conf' ]
- [ 'templates/bar.j2', '/etc/splat/bar.conf' ]
notify:
- restart fooserv
অবশ্যই আপনি অন্য যে ফাইলটিতে যাচ্ছেন সেই তালিকাটিও গ্রুপের groupvars/webservers
জন্য প্রয়োজনীয় সমস্ত ভেরিয়েবলগুলি সংজ্ঞায়িত করার মতো একটি ফাইল webservers
বা প্লেবুকের varsfiles
ভিতরে " " নির্দেশিকা থেকে বোঝা একটি ওয়াইএএমএল ফাইল " " সংজ্ঞায়িত করতে পারলাম । দেখুন আমরা কীভাবে এটি পরিষ্কার করতে পারে।
- name: template everything for fooserv
template: src={{item.src}} dest={{item.dest}}
with_items: {{fooserv_template_files}}
notify:
- restart fooserv
with_fileglob
সর্বদা থেকে সঞ্চালিত হয়files/
, আপনি টেমপ্লেট পেতে পারেন../templates/mytemplate/*
। stackoverflow.com/a/27407566/1695680