Terraform প্রদানকারী

Terraform Pradanakari



কোড টুলস হিসেবে একটি জনপ্রিয় এবং ওপেন সোর্স অবকাঠামো হল Terraform। এটি ডেভেলপারদের আপনার অবকাঠামোকে ঘোষণামূলকভাবে সংজ্ঞায়িত করতে এবং পরিচালনা করতে দেয়। এটি অন্তর্নিহিত ক্লাউড প্ল্যাটফর্ম বা পরিষেবা প্রদানকারী নির্বিশেষে একটি সহজ এবং সামঞ্জস্যপূর্ণ সিনট্যাক্স ব্যবহার করে অবকাঠামো সংস্থানগুলি তৈরি করতে, পরিচালনা করতে এবং সংশোধন করতে সক্ষম করে৷

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

Terraform প্রদানকারীর পরিচিতি

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







Terraform প্রদানকারীর প্রকার

মধ্যে টেরাফর্ম রেজিস্ট্রি , আমরা তিন ধরনের প্রদানকারী দেখতে পারি:



অফিসিয়াল প্রোভাইডার

অফিসিয়াল প্রোভাইডারদের রক্ষণাবেক্ষণ করা হয় HashiCorp কোম্পানী যেটা Terraform এর মালিক। যদি আমাদের ভাল-ডকুমেন্টেড এবং আপ-টু-ডেট প্রদানকারীদের প্রয়োজন হয় তবে এই প্রদানকারীগুলি হল সেরা উপলব্ধ বিকল্প।



AWS, Microsoft Azure, এবং Google ক্লাউড প্ল্যাটফর্ম প্রদানকারীরা Terraform-এ অফিসিয়াল প্রদানকারীদের উদাহরণ হতে পারে।





অংশীদার প্রদানকারী

তৃতীয় পক্ষের সংস্থাগুলি এই সরবরাহকারীদের রক্ষণাবেক্ষণ করে এবং তাদের পরিষেবাগুলির জন্য একটি অফিসিয়াল সহায়তা প্রদানের জন্য HashiCorp এর সাথে অংশীদারিত্ব করেছে।

GitLab, MongoDB, এবং CloudFlare প্রদানকারী কিছু অংশীদার প্রদানকারী যা ব্যবহারকারীদের জন্য উপলব্ধ।



সম্প্রদায় প্রদানকারী

সম্প্রদায় প্রদানকারীরা সাধারণত Terraform সম্প্রদায়ের ব্যক্তি বা সংস্থার দ্বারা তৈরি করা হয় যারা ক্লাউড প্ল্যাটফর্ম বা পরিষেবাতে সংস্থানগুলি পরিচালনা করতে চায় যা কোনও অফিসিয়াল বা অংশীদার প্রদানকারী দ্বারা সমর্থিত নয়৷

সম্প্রদায় প্রদানকারীদের কিছু উদাহরণ নিম্নলিখিত ছবিতে দেখানো হয়েছে:

কিভাবে একটি Terraform প্রদানকারী ব্যবহার করুন

একটি Terraform প্রদানকারী ব্যবহার করার জন্য, আমাদের কনফিগারেশন ফাইলে একটি প্রদানকারী ব্লক অন্তর্ভুক্ত করতে হবে যা প্রদানকারীকে নির্দিষ্ট করে যা আমরা ব্যবহার করতে চাই এবং যেকোনো প্রয়োজনীয় কনফিগারেশন প্যারামিটার যেমন শংসাপত্র বা অঞ্চল।

একবার প্রদানকারী কনফিগার হয়ে গেলে, আমরা ক্লাউড প্ল্যাটফর্ম বা পরিষেবাতে সংস্থানগুলি পরিচালনা করতে আমাদের Terraform কনফিগারেশনে প্রদানকারীর দ্বারা সরবরাহ করা সংস্থান এবং ডেটা উত্সগুলি ব্যবহার করতে পারি৷

আসুন একটি সাধারণ Terraform কনফিগারেশন ফাইল তৈরি করি যা AWS ক্লাউড প্ল্যাটফর্মে একটি EC2 উদাহরণ তৈরি করে।

প্রদানকারী 'aws' {

সংস্করণ = '~> 3.0'

অঞ্চল = 'us-east-2'

}

সম্পদ 'aws_instance' 'myEC2' {

যা = 'ami-0a561b65214a47cac'

instance_type = 't3. ছোট'

ট্যাগ = {

নাম = 'নতুন উদাহরণ'

}

}

প্রথমত, আমরা প্রদানকারী ব্লক সংজ্ঞায়িত করি, AWS প্রদানকারী এবং যে অঞ্চলে সংস্থান তৈরি করা হয় তা উল্লেখ করে। তারপর, আমরা আমাদের রিসোর্স ব্লককে রিসোর্স টাইপ হিসাবে aws_instance, রিসোর্সের নাম হিসাবে 'myEC2' এবং অ্যাট্রিবিউট হিসাবে 'ami', 'instance_type', এবং 'ট্যাগ' সমন্বিত হিসাবে সংজ্ঞায়িত করি। রিসোর্স টাইপকে দুই ভাগে ভাগ করা যায়: প্রোভাইডার এবং রিসোর্স। এই ক্ষেত্রে, 'aws' হল প্রদানকারী, এবং 'উদাহরণ' হল সম্পদ। এছাড়াও, যদি কাউকে দশটি EC2 দৃষ্টান্তের ব্যবস্থা করতে হয়, তাহলে 'গণনা' বৈশিষ্ট্যটি মান হিসাবে দশের সাথে ব্যবহার করা যেতে পারে।

এখন, আমরা টেরাফর্ম ফ্লো সম্পাদন করতে পারি যার মধ্যে রয়েছে টেরাফর্ম ইনিট, টেরাফর্ম প্ল্যান, এবং টেরাফর্ম প্রয়োগ কমান্ডগুলিকে আমরা সংজ্ঞায়িত করা সংস্থান তৈরি করতে।

Terraform AWS প্রদানকারী ব্যবহার করে, আমরা AWS ক্লাউড প্ল্যাটফর্ম অ্যাক্সেস করতে পারি এবং AWS ম্যানেজমেন্ট কনসোল ব্যবহার না করে দক্ষতার সাথে এর পরিষেবাগুলির সাথে যোগাযোগ করতে পারি।

Terraform এ একাধিক প্রদানকারী ব্যবহার করা

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

আপনার বোঝার জন্য, আসুন একটি উদাহরণ দেওয়া যাক যেখানে আমরা Google ক্লাউড প্ল্যাটফর্মে একটি গণনা ইঞ্জিন, GitHub-এ একটি সংগ্রহস্থল এবং AWS ক্লাউড প্ল্যাটফর্মে একটি S3 বাকেট স্থাপন করি।

প্রদানকারী 'গুগল' {

প্রকল্প = 'প্রথম প্রকল্প'

অঞ্চল = 'us-west1'

}

প্রদানকারী 'গিথুব' {

টোকেন = 'Your_GITHUB_TOKEN'

}

প্রদানকারী 'aws' {

সংস্করণ = '~> 3.0'

অঞ্চল = 'us-west-2'

}

সম্পদ 'google_compute_instance' 'gcpInstance' {

নাম = 'নতুন উদাহরণ'

মেশিন_টাইপ = 'n1-মান-1'

অঞ্চল = 'us-west1-a'

বুট_ডিস্ক {

ইনিশিয়ালাইজ_প্যারামস {

ছবি = 'ডেবিয়ান-ক্লাউড/ডেবিয়ান-10'

}

}

}

সম্পদ 'github_repository' 'গিটরেপো' {

নাম = 'নতুন রেপো'

বর্ণনা = 'এটি আমার নতুন সংগ্রহস্থল'

}

সম্পদ 'aws_s3_বালতি' 'awsBucket' {

বালতি = 'নতুন বালতি'

acl = 'ব্যক্তিগত'

}

প্রথম ধাপ হিসাবে, আমরা প্রদানকারী (Google, GitHub, এবং AWS) এবং প্রয়োজনীয় তথ্য যেমন অঞ্চল, প্রকল্পের নাম ইত্যাদি নির্দিষ্ট করতে আমাদের প্রদানকারী ব্লক সংজ্ঞায়িত করি। তারপর, আমরা তিনটি রিসোর্স ব্লক ব্যবহার করে আমাদের সংস্থান ঘোষণা করি: “gcpInstance”, “ gitRepo', এবং 'awsBucket'।

প্রথমত, আমরা Google ক্লাউড প্ল্যাটফর্মে একটি কম্পিউট ইঞ্জিন তৈরি করি যার নাম 'new-instance', মেশিনের ধরন হিসাবে 'n1-standard-1' এবং 'us-west1-a' উপলভ্যতা অঞ্চল হিসাবে। এটি হোস্ট ওএস হিসাবে ডেবিয়ান ব্যবহার করে। তারপরে, আমরা 'new-repo' নামে একটি GitHub সংগ্রহস্থল এবং একটি উপযুক্ত বিবরণ তৈরি করি। অবশেষে, একটি S3 বালতি তৈরি করা হয় নাম হিসেবে 'নতুন-বালতি' এবং ACL (অ্যাক্সেস কন্ট্রোল লিস্ট) মান হিসেবে 'ব্যক্তিগত'।

এই তিনটি Terraform প্রদানকারীর সাথে, আমরা সহজেই ক্লাউড প্ল্যাটফর্ম এবং তাদের পরিষেবাগুলির সাথে যোগাযোগ করতে পারি।

Terraform প্রদানকারীদের সাথে কাজ করার জন্য সর্বোত্তম অভ্যাস

প্রদানকারী সংস্করণ

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

প্রদানকারী প্রমাণীকরণ

আমরা সংশ্লিষ্ট ক্লাউড প্ল্যাটফর্ম বা পরিষেবার সাথে ইন্টারঅ্যাক্ট করার জন্য Terraform-কে প্রমাণীকরণ এবং অনুমোদন করতে API কী এবং অ্যাক্সেস টোকেনগুলির মতো সুরক্ষিত প্রমাণীকরণ প্রক্রিয়া ব্যবহার করতে পারি।

প্রদানকারী ডকুমেন্টেশন

প্রদানকারীদের প্রায়ই নির্দিষ্ট কনফিগারেশন বিকল্প, বৈশিষ্ট্য এবং সীমাবদ্ধতা থাকে। এই টিউটোরিয়ালটি বোঝা আমাদের কার্যকরীভাবে প্রদানকারীকে ব্যবহার করতে এবং সাধারণ সমস্যাগুলি এড়াতে সাহায্য করে।

প্রদানকারী আপডেট

প্রদানকারীরা বাগ ফিক্স, কর্মক্ষমতা উন্নতি এবং নতুন বৈশিষ্ট্য প্রকাশ করতে পারে। আপ-টু-ডেট থাকা আমাদের সর্বশেষ উন্নতির সুবিধা নিতে এবং প্রদানকারীর ইকোসিস্টেমের সাথে সামঞ্জস্য বজায় রাখতে দেয়।

সম্প্রদায় সমর্থন

সরবরাহকারীদের ব্যবহার করার সময় যে দৈনন্দিন চ্যালেঞ্জের সম্মুখীন হয় আমরা অনলাইন ফোরাম, আলোচনা বোর্ড এবং কমিউনিটি চ্যানেলগুলি ব্যবহার করতে পারি।

ত্রুটি হ্যান্ডলিং এবং সমস্যা সমাধান

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

উপসংহার

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