পুতুলের সাথে মাল্টিসাইট উচ্চ উপলব্ধতার জন্য বিকল্পগুলি


14

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

আরও ভাল হবে এক ধরণের সক্রিয় / সক্রিয় সেটআপ রাখা যাতে দ্বিতীয় সাইটের সার্ভারগুলি ডাব্লুএনএএন-তে ভোট দেয় না।

মাল্টি-সাইট পুতুলের উচ্চ প্রাপ্যতার কোনও মানক পদ্ধতি আছে?


1
আমি কি আপনাকে সঠিক প্রশ্ন বুঝতে পেরেছি? পুতুলের মাস্টার অনুপলব্ধ অবস্থায় আপনি অপ্রয়োজনীয় পুতুলের মাস্টার রাখার উপায় খুঁজছেন?
হ্রভোয়েপোলজার

এটি কীভাবে আপনি পুতুল ব্যবহার করছেন তার উপর নির্ভর করে। নমনীয়তা অনেক আছে। উদাহরণস্বরূপ, আপনি কি সঞ্চিত কনফিগার ব্যবহার করছেন?
জোরডাচি

3
আপনি "মাস্টারলেস পুতুল" তাকিয়েছেন? এর সারমর্মটি হ'ল প্রতিটি এজেন্টের ম্যানিফাইস্টগুলির একটি চেকআউট থাকে এবং তারা সেগুলি স্থানীয়ভাবে প্রয়োগ করে। আপনি দিয়ে শেষ gitবা svnবা rsyncবা যাই হোক না কেন সংস্করণ নিয়ন্ত্রণ সিস্টেম আপনি হচ্ছে কি পুতুল মাস্টার বদলে স্কেল প্রয়োজন ব্যবহার করে।
লাদাদাদাদা

3
সক্রিয়-সক্রিয় প্রশ্নটির সমাধান করার জন্য একটি ইঙ্গিত: আপনি উভয় ডাটাসেন্টার থেকে একই ( "ভার্চুয়াল" / "পরিষেবা-" ) আইপি ঘোষণা করতে যে কোনও কাস্টকাস্ট ব্যবহার করতে পারেন । আমরা আমাদের সমাধান ডিএনএস সার্ভারের জন্য এটি করি। প্রতিটি ডাটাসেন্টারে আমাদের লোডবালেন্সাররা একই যেকোনকাস্ট আইপি ঘোষণা করে। আমাদের রাউটিং স্থানীয় লোডবালেন্সারকে পছন্দ করে তবে ব্যর্থতার ক্ষেত্রে অন্যান্য ডিসিগুলির কাছে ফিরে যায় (any "আরকাস্টক্ট আইপি ঘোষণা না করে")।
মিচুয়েলনিক

1
আমি পুতুল 3.0.০ এর নতুন বৈশিষ্ট্যগুলির মধ্যে একটি হ'ল এসআরভি রেকর্ড সমর্থন , যা উইন্ডোজ লোকেদের সাথে ভাল পরিচিত এবং সাইট স্টাফের সাথে সহায়তা করতে পারে।
sysadmin1138

উত্তর:


13

পুতুল প্রকৃতপক্ষে ক্যাভ্যাট সহ মাল্টি-মাস্টার পরিবেশে নিজেকে বেশ ভাল ধার দেয়। প্রধান এক? পুতুলের প্রচুর অংশ কেন্দ্রীভূত হতে পছন্দ করে। শংসাপত্র কর্তৃপক্ষ, ইনভেন্টরি এবং ড্যাশবোর্ড / রিপোর্ট পরিষেবাদি, ফাইলবুকটিং এবং সঞ্চিত কনফিগারেশন - সেগুলির সাথে কথা বলার জন্য কেবলমাত্র একটি জায়গা আছে এমন একটি সেটআপে (বা কেবল প্রয়োজন প্রয়োজন) সর্বোত্তম।

মাল্টি-মাস্টার পরিবেশে কাজ করে এমন অনেকগুলি মুভিং অংশগুলি অর্জন করার পক্ষে এটি বেশ কার্যকর, যদি আপনি নিজের প্রাথমিক সাইটটি হারিয়ে ফেলেছেন তবে কিছু কার্যকারিতা ক্ষুন্ন হয়ে যাওয়ার জন্য যদি আপনি ঠিক থাকেন।


মাস্টারের কাছে নোডের প্রতিবেদন পাওয়ার জন্য বেস কার্যকারিতাটি শুরু করুন:

মডিউল এবং উদ্ভাসিত

এই অংশটি সহজ। সংস্করণ এগুলি নিয়ন্ত্রণ করে। যদি এটি কোনও বিতরণযোগ্য সংস্করণ নিয়ন্ত্রণ ব্যবস্থা হয় তবে কেবলমাত্র কেন্দ্রিককরণ এবং সিঙ্ক করুন এবং ব্যর্থ সাইটে প্রয়োজনীয় হিসাবে আপনার ধাক্কা / টান প্রবাহকে পরিবর্তন করুন। যদি এটি সাবভারশন হয় তবে আপনি সম্ভবত svnsyncআপনার ব্যর্থ স্থানটি রেপোতে চাইবেন ।

শংসাপত্র কর্তৃপক্ষ

এখানে একটি বিকল্প হ'ল মাস্টারদের মধ্যে শংসাপত্র কর্তৃপক্ষের ফাইলগুলি সহজেই সিঙ্ক করা, যাতে সকলেই একই মূল শংসাপত্রটি ভাগ করে এবং শংসাপত্রগুলিতে স্বাক্ষর করতে সক্ষম হয়। এটি আমাকে সর্বদা "এটি ভুল করে" বলে আঘাত করেছে;

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

আমি সত্যই বলতে পারি না যে আমি এই বিকল্পটির পুরো পরীক্ষার কাজ করেছি, কারণ এটি ভয়ঙ্কর বলে মনে হচ্ছে। যাইহোক, এটা যে পুতুল ল্যাবস নোট অনুযায়ী, এই বিকল্পটি উৎসাহিত করার জন্য খুঁজছেন হয় না বলে মনে হয় এখানে

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

আপনি সিএ হিসাবে অভিনয় করার জন্য একজন জনকে বেছে নেবেন এবং অন্য সমস্ত মাস্টার এটি অক্ষম করে দেবেন:

[main]
    ca_server = puppet-ca.example.com
[master]
    ca = false

তারপরে, আপনি চান যে কেন্দ্রীয় সিস্টেমটি শংসাপত্র সম্পর্কিত ট্র্যাফিকের সমস্তটি পাবে। এর জন্য কয়েকটি বিকল্প রয়েছে;

  1. SRVসমস্ত এজেন্ট নোডগুলিকে সিএর জন্য সঠিক জায়গায় নির্দেশ করতে 3.0 এ নতুন রেকর্ড সমর্থনটি ব্যবহার করুন -_x-puppet-ca._tcp.example.com
  2. সমস্ত এজেন্টের ca_serverমধ্যে কনফিগারেশন বিকল্পটি সেট আপ করুনpuppet.conf
  3. প্রক্সিটি সিএ-সম্পর্কিত অনুরোধের জন্য এজেন্ট থেকে সঠিক মাস্টারের কাছে সমস্ত ট্র্যাফিক। উদাহরণস্বরূপ, আপনি যদি প্যাসেঞ্জারের মাধ্যমে আপনার সমস্ত মাস্টার অ্যাপাচে চালাচ্ছেন তবে নন-সিএগুলিতে এটি কনফিগার করুন:

    SSLProxyEngine On
    # Proxy on to the CA.
    ProxyPassMatch ^/([^/]+/certificate.*)$ https://puppet-ca.example.com:8140/$1
    # Caveat: /certificate_revocation_list requires authentication by default,
    # which will be lost when proxying. You'll want to alter your CA's auth.conf
    # to allow those requests from any device; the CRL isn't sensitive.
    

এবং, এটি করা উচিত।


আমরা সহায়ক পরিষেবাগুলিতে যাওয়ার আগে একটি পার্শ্ব নোট;

মাস্টার শংসাপত্রগুলির জন্য ডিএনএস নাম

আমি মনে করি এটি ঠিক এখানে 3.0 এ যাওয়ার সবচেয়ে বাধ্যযোগ্য কারণ। বলুন যে আপনি "যে কোনও ওল 'ওয়ার্কিং মাস্টার" এ নোডটি নির্দেশ করতে চান।

২.7 এর অধীনে, আপনার মতো জেনেরিক ডিএনএস নাম প্রয়োজন puppet.example.com, এবং সমস্ত মাস্টারদের তাদের শংসাপত্রে এটির প্রয়োজন। এর অর্থ dns_alt_namesতাদের কনফিগারেশনে সেটিংস স্থাপন , মাস্টার হিসাবে কনফিগার করার আগে তাদের কাছে থাকা শংসাপত্রটি পুনরায় জারি করা, যখন আপনাকে তালিকায় একটি নতুন ডিএনএস নাম যুক্ত করতে হবে তখন পুনরায় শংসাপত্রটি জারি করুন (যেমন আপনি যদি একাধিক ডিএনএস নাম চাইতেন তবে এজেন্টদের তাদের সাইটে মাস্টার্স পছন্দ করুন) .. কুরুচিপূর্ণ।

3.0 সহ, আপনি SRVরেকর্ড ব্যবহার করতে পারেন । আপনার সমস্ত ক্লায়েন্টকে এটি দিন;

[main]
    use_srv_records = true
    srv_domain = example.com

তারপরে, মাস্টারদের জন্য কোনও বিশেষ শংসাপত্রের প্রয়োজন নেই - কেবলমাত্র আপনার SRVআরআরে একটি নতুন রেকর্ড যুক্ত করুন _x-puppet._tcp.example.comএবং আপনি সেট হয়ে গেছেন , এটি গ্রুপে একটি লাইভ মাস্টার। আরও ভাল, আপনি সহজেই মাস্টার নির্বাচনের যুক্তিকে আরও পরিশীলিত করতে পারেন; "যে কোনও ওল 'কর্মক্ষম মাস্টার, তবে আপনার সাইটে একজনকে পছন্দ করুন" SRVবিভিন্ন সাইটের জন্য রেকর্ডের বিভিন্ন সেট স্থাপন করে ; কোন dns_alt_namesপ্রয়োজন নেই।


রিপোর্ট / ড্যাশবোর্ড

এটি সর্বোত্তম কেন্দ্রীভূত হয়ে কাজ করে তবে আপনার প্রাথমিক সাইটটি ডাউন হয়ে থাকলে আপনি যদি এটি ছাড়া বাঁচতে পারেন তবে কোনও সমস্যা নেই। প্রতিবেদনগুলি রাখার জন্য সঠিকভাবে আপনার সমস্ত মাস্টারকে কনফিগার করুন ..

[master]
    reports = http
    reporturl = https://puppetdash.example.com/reports/upload

..আপনি সব প্রস্তুত কোনও প্রতিবেদন আপলোড করতে ব্যর্থতা কনফিগারেশন পরিচালনার জন্য মারাত্মক নয়; ড্যাশবোর্ড সার্ভারের টোস্টটি খালি হারিয়ে যাবে।

ফ্যাক্ট ইনভেন্টরি

আপনার ড্যাশবোর্ডে আটকানো আরও একটি দুর্দান্ত জিনিস হ'ল ইনভেন্টরি পরিষেবা। ডকুমেন্টেশনে প্রস্তাবিত হিসাবে facts_terminusসেট সহ rest, কেন্দ্রীয় ইনভেন্টরি পরিষেবা বন্ধ হয়ে গেলে এটি প্রকৃতপক্ষে কনফিগারেশন চলবে। এখানে কৌশলটি হ'ল inventory_serviceনন-সেন্ট্রাল মাস্টারগুলিতে টার্মিনাসটি ব্যবহার করা , যা প্রশংসনীয় ব্যর্থতার জন্য অনুমতি দেয় ..

facts_terminus = inventory_service
inventory_server = puppet-ca.example.com
inventory_port = 8140

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


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


1
সিএ স্টাফের জন্য +1। নোট করুন যে আপনি সমস্ত সিএ গুডিকে সিঙ্ক / সংস্করণ নিয়ন্ত্রণ করতে পারবেন এবং ব্যর্থতা পরিস্থিতি তৈরি না হওয়া অবধি কেবলমাত্র "স্ট্যান্ডবাই" পুতুলের মাস্টারগুলিতে এটিকে সক্রিয় করতে পারবেন না (কোন পর্যায়ে আপনি আপনার নতুন "মাস্টার" এ সিএ বিটস আপ করবেন এবং SRVরেকর্ডটি আপডেট করবেন তদনুসারে - SRVরেকর্ডগুলি তাদের সম্পর্কে আমার সাধারণ
দ্ব্যর্থতা

1
@ ভোরেটাক 7 এটি একটি ভাল বিষয় - এই ধরণের সক্রিয় / সক্রিয় স্থাপনার চেয়ে বিশুদ্ধ ব্যর্থ ওভার সেটআপটি অনেক কম লেগওয়ার্ক হবে।
শেন ম্যাডেন

2
সংযোজন হিসাবে, আমি পুতুল ডক্সের মাল্টি-মাস্টার স্কেলিং গাইডেও
শেন ম্যাডেন

8

লাদাদাদাদের বর্ণিত "মাস্টারহীন পুতুল" পদ্ধতির মধ্যে আমি সবচেয়ে বেশি পরিচিত (এটি মূলত আমরা আমার কোম্পানির রেডমাইন্ডের সাথে যা করি)। আমি আরও নির্ভুলভাবে অনুমান করি এটি "বহিরাগত প্রক্রিয়া দ্বারা একাধিক মাস্টার সিঙ্ক্রোনাইজড", যেখানে কোনও প্রদত্ত সার্ভার (তাত্ত্বিকভাবে) জরুরী পরিস্থিতিতে আমাদের পুরো মহাবিশ্বকে পরিবেশন করতে পারে।

আমাদের ক্ষেত্রে র‌্যাডমাইন্ডের প্রকৃতির কারণে আমরা কেবল rsyncকোনও অনুমোদিত মাস্টার থেকে প্রতিটি প্রত্যন্ত সাইটের রেডমাইন্ড সার্ভারে প্রতিলিপি এবং ডেটা ফাইলগুলি প্রতিলিপি করি এবং ক্লায়েন্টরা সংক্ষিপ্ত হোস্টনামের সাথে সার্ভার থেকে তাদের আপডেটগুলি টানায় radmind( resolv.confএই মূল্যায়নের যাদুটির মাধ্যমে radmind.[sitename].mycompany.com- সর্বদা স্থানীয় রেডমাইন্ড সার্ভার the যদি স্থানীয় সার্ভারটি নিচে থাকে তবে ওভাররাইড করা এবং অন্য কোনও সাইটের সার্ভারে নির্দেশ করা যথেষ্ট সহজ)।

এই ধরণের rsync প্রক্রিয়াটি সম্ভবত আপনার পরিস্থিতিতেও কাজ করবে তবে সংস্করণ-নিয়ন্ত্রণ ভিত্তিক সমাধানের তুলনায় এটি সম্ভবত উপ-অনুকূল।


পুতুল বা শেফের জন্য কয়েকটি কারণের জন্য একটি সংস্করণ-নিয়ন্ত্রণ-ভিত্তিক সিস্টেমটি সহজ আরএসসিএন-এর চেয়ে বেশি অর্থবোধ করে - বড় কারণ হ'ল আপনি পুতুল স্ক্রিপ্টগুলি সংস্করণ-নিয়ন্ত্রণ করছেন (র‌্যাডমাইন্ডের সাথে পুরো ওএস চিত্রগুলির চেয়ে বরং)।
সংস্করণ-নিয়ন্ত্রণ ভিত্তিক পরিচালনার অতিরিক্ত সুবিধা হিসাবে আপনি একসাথে একাধিক লোকের সংগ্রহস্থলটিতে কাজ করতে পারেন (সমান্তরালনের জন্য দুর্দান্ত জয়), আপনি মূলত বিনামূল্যে পুনর্বিবেচনার ইতিহাস পাবেন এবং যদি কেউ পুতুলের পরিবেশটি ভেঙে ফেলেন তবে আপনার কাছে সহজ রোলব্যাক রয়েছে (আপনাকে মনে করে ' আপনি টিনে যা বলে তা করে যা gitআপনার ব্যবহার করে পুনরায় git blame)।
ক্রিয়েটিভ ব্রাঞ্চিং এবং মার্জিং এমনকি আপনাকে সংস্করণ নিয়ন্ত্রণ কাঠামোর মধ্যে একটি বড় ওএস আপগ্রেড বা অন্য ট্রানজিশন পরিচালনা করতে দেয় - এটি ঠিক হয়ে গেলে নতুন শাখায় স্যুইচ করুন এবং (আশা করি) প্রোডাকশন পুশ জাস্ট ওয়ার্ক করবে।

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

প্রতিটি সাইটে নতুন পুতুলমাস্টার সার্ভার আনার ক্ষেত্রে, আপনি কেবল প্রতিটি প্রত্যন্ত পুতুলমাস্টারের কাছে পুতুল পরিবেশ পরীক্ষা করে দেখতে পারেন, এবং উপরে বর্ণিত রেজোলভ.কনফ / হোস্টনাম হ্যাকারি বা মিচুয়েলনিকের মতো স্থানীয় সিস্টেমে পুনঃনির্দেশিত কোনকাস্ট পরিষেবা আইপি ব্যবহার করুন ( যদি প্রতিটি সাইটের "ডান" পুতুলমাস্টার দেখেছে এবং আপনার ডাব্লুএএন লিঙ্কগুলি আপডেট পাওয়ার চেষ্টা করছে না তা নিশ্চিত করার জন্য এটি পরিচালনা করতে আপনি যদি স্বয়ংক্রিয়ভাবে ব্যর্থ হয়ে যেতে চান তবে যদি কোনও সাইটের পুতুলের মাষ্টারের হাতছাড়া হয় তবে স্বয়ংক্রিয়ভাবে ব্যর্থ হয়-


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

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.