উত্তর: হোস্টনাম বা ভূমিকার উপর নির্ভর করে ফাইল অনুলিপি করুন


9

হোস্টনামের উপর নির্ভর করে কোনও ফাইল অনুলিপি করার সর্বোত্তম উপায় কী?

বিভিন্ন কন্টেন্টের সাথে আমার একই ফাইল নামটি বিভিন্ন মেশিনে অনুলিপি করা দরকার।

আমার বেশ কয়েকটি ফাইল রয়েছে:

file.role1
file.role2
file.role3

হোস্ট-নেম এবং / অথবা ভূমিকার উপর নির্ভর করে আমি file.roleXএটির অনুলিপি করে নাম পরিবর্তন করতে চাইfile

ধন্যবাদ।

উত্তর:


31

এটি করার অনেকগুলি উপায় রয়েছে। সরলতম:

- name: Copy file.role1 to host1
  copy: src=file.role1 dest=/somewhere/file
  when: inventory_hostname == "host1"
- name: Copy file.role2 to host2
  copy: src=file.role2 dest=/somewhere/file
  when: inventory_hostname == "host2"

বিকল্প, আরও কমপ্যাক্ট:

- name: Copy file to host
  copy: src=file.{{ inventory_hostname }} dest=/somewhere/file

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

- name: Copy file to host
  template: src=file dest=/somewhere/file

যেখানে টেমপ্লেটটি এরকম কিছু হতে পারে:

{% if inventory_hostname == "host1" %}
{% include "file1" %}
{% endif %}
...

আপনি যদি বিভিন্ন ভূমিকায় আলাদা ফাইল চান তবে আপনি কেবল এটিকে কেন রাখবেন না:

- name: Copy file.role1 to file
  copy: src=file.role1 dest=/somewhere/file

প্রতিটি ভূমিকার কোডে?

এটি করার কোনও পছন্দসই উপায় নেই - এটি আসলে আপনি কী অর্জন করার চেষ্টা করছেন তার উপর নির্ভর করে।


5
TIMTOWTDI এর জন্য বোনাস পয়েন্ট !
tedder42

ধন্যবাদ - আমি আসলে কোনও অগোছালো না তৈরি করা বা খুব বেশি ভূমিকা / বড় ইনভেন্টরি ফাইল না করে ওএস এবং আর্কিটেকচারের উপর নির্ভর করে একটি ভিন্ন অ্যাপটিসোর্স ফাইলের জন্য ছিলাম। আমি ইনভেন্টরি ফাইলটিতে হোস্টনামের পিছনে একটি পরিবর্তনশীল হিসাবে গিয়েছিলাম: উত্স_লিস্ট = ডেবিয়ান এবং যার কারণ উত্স.লিস্ট = ডেবিয়ান উত্স.লিস্টে অনুলিপি করে।
টুইনস্লাক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.