মাইকেল ডিহান ( উত্তরীয় স্রষ্টা) কোডারওয়ালে একটি পোস্ট করেছিলেন যা খুব অনুরূপ ইস্যু নিয়ে কথা বলে। আপনি এটি আপনার প্রয়োজন অনুসারে এডজাস্ট এবং প্রসারিত করতে পারেন (যেমন অনুমতি এবং মালিকানা)। পোস্টের প্রাসঙ্গিক অংশটি এখানে:
এটি " 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