অপারেটিং সিস্টেমের ভিত্তিতে উত্তরটিতে ভোল এবং হোস্ট ব্যবহার করে ভিএম স্থাপন করা


9

জবাবদিহি করার জন্য বিভিন্ন অপারেটিং সিস্টেমে হোস্ট / রোলগুলি কীভাবে সেরা প্রয়োগ করা যায় তা নিয়ে কাজ করার ক্ষেত্রে আমার সমস্যা হচ্ছে।

আমি বর্তমানে উইন্ডোজ / ম্যাক / লিনাক্স ভিএম জেনারেট করতে আনসিবল ব্যবহার করছি এবং প্রতিটি ভিএম-এর বিভিন্ন ভূমিকা রয়েছে যা তাদের প্রয়োগ করা দরকার।

আমি সর্বোত্তম অনুশীলনগুলি পড়েছি এবং সেগুলি অনুসরণ করার চেষ্টা করেছি, বিশেষত দলবদ্ধকরণ পদ্ধতিটি ব্যবহার করার জন্য, তবে তারা এখনও বেশিরভাগ ওয়েবসভার এবং ডিবেজার্সের উল্লেখ করার কারণে আমি এখনও নিশ্চিত নই।


site.yml

- name: Apply common configuration to all nodes
  hosts: all
  roles:
    - common

- name: Configure and deploy test node 1
  hosts: build-test-node
  roles:
    - build-machine-test-1

- name: Configure and deploy test node 2
  hosts: build-test-node-2
  roles:
    - build-machine-test-2

পরিবেশের / পরীক্ষা / গ্রুপ

[win_build_nodes]
win_build_machine_1
win_build_machine_2

[mac_build_nodes]
mac_build_machine_1

পরিবেশের / পরীক্ষা / হোস্ট

win_build_machine_1   ansible_host=......
win_build_machine_2   ansible_host=......
mac_build_machine_1   ansible_host=......

পরিবেশের / পরীক্ষা / মেটা

[mac_build_nodes]
[win_build_nodes]

[win:children]
win_build_nodes

[mac:children]
mac_build_nodes

[linux:children]

[build_nodes:children]
win_build_nodes
mac_build_nodes

environment/test/metaফাইল আমি চাহিদা বিশ্বাস সঙ্গে পরিবর্তন করা build_nodes:children, কিন্তু আমি কি নিশ্চিত নই। পূর্বে আমি কেবল ভিএমদের নিম্নলিখিত ভূমিকা নিয়ে নির্মিত সমস্ত ভূমিকা পালন করছিলাম:

পুরাতন সাইট.আইএমএল

- name: Apply everything
  hosts: build_nodes
  roles:
    - common
    - build-machine-test-1
    - build-machine-test-2

তবে তখন বুঝতে পেরেছিলাম যে আমি একই মেশিনে সবকিছু তৈরি করা চাই না। দ্রষ্টব্য, build-machine-test-1এবং 2অপারেটিং সিস্টেমের উপর ভিত্তি করে কী অন্তর্ভুক্ত করতে হবে তা সনাক্ত করে এবং উভয়ের পৃথক উইন্ডোজ / ম্যাক / লিনাক্স বিল্ড রয়েছে।

অপারেটিং সিস্টেমের উপর ভিত্তি করে কেউ ভিএমএসকে আলাদা করার আরও ভাল উপায়ের পরামর্শ দিতে পারে?

উত্তর:


6

সুতরাং আমি একই কাঠামোটি মোটামুটিভাবে রাখতে পেরেছি এবং কীভাবে মেশিনগুলি উত্পন্ন হয় তা আলাদা করতে পরিচালিত করেছি, তবে এটি এখনও কিছুটা অস্পষ্ট এবং সম্ভবত আরও দক্ষ হওয়ার জন্য উন্নত করা যেতে পারে!


site.yml

- name: Apply common configuration to all nodes
  hosts: all
  roles:
    - common

- name: Configure and deploy test node 1
  hosts: build-test-node
  roles:
    - build-machine-test-1

- name: Configure and deploy test node 2
  hosts: build-test-node-2
  roles:
    - build-machine-test-2

পরিবেশের / পরীক্ষা / গ্রুপ

[win_test_1_nodes]
win_build_machine_1

[mac_test_1_nodes]
mac_build_machine_1

[win_test_2_nodes]
win_build_machine_2

[mac_test_2_nodes]
mac_build_machine_2

পরিবেশের / পরীক্ষা / হোস্ট

win_build_machine_1   ansible_host=......
win_build_machine_2   ansible_host=......
mac_build_machine_1   ansible_host=......
mac_build_machine_2   ansible_host=......

পরিবেশের / পরীক্ষা / মেটা

[win_test_1_nodes]
[mac_test_1_nodes]
[win_test_2_nodes]
[mac_test_2_nodes]

[win:children]
win_test_1_nodes
win_test_2_nodes

[mac:children]
mac_test_1_nodes
mac_test_2_nodes

[build-machine-test-1:children]
win_test_1_nodes
mac_test_1_nodes

[build-machine-test-2:children]
win_test_2_nodes
mac_test_2_nodes

এই সমাধানটি আরও পরীক্ষার নোডগুলিতে তাদের পৃথক ভূমিকা যুক্ত করার সাথে উত্পন্ন করার অনুমতি দেয় এবং মেশিনটি সরবরাহ করার জন্য সঠিক গ্রুপে স্রেফ যুক্ত করা যেতে পারে।


1

https://github.com/030/ansible-certbot

main.yml

- include: Debian.yml
when: ansible_os_family == 'Debian'

ডেবিয়ানদের জন্য প্রয়োজনীয় সমস্ত কিছু ডিবিয়ান.আইএমএল এবং সেন্টোস.আইএমএলে ইউমের মতো রাখুন।

সংক্ষেপে, ওএস নির্দিষ্ট জিনিসগুলিকে পৃথক ফাইলে রাখলে সমস্ত ওএস ধরণের একই ভূমিকা ব্যবহার করা সম্ভব।

এটি একটি আরও বিস্তৃত উদাহরণ https://github.com/geerlingguy/ansible-role-mysql/blob/master/tasks/main.yml


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