ہم نے سلیکٹیل کے ساتھ کام کرنے کے لیے ایک سرکاری ٹیرافارم فراہم کنندہ شروع کیا ہے۔ یہ پروڈکٹ صارفین کو بنیادی ڈھانچے کے طور پر کوڈ کے طریقہ کار کے ذریعے وسائل کے انتظام کو مکمل طور پر نافذ کرنے کی اجازت دیتا ہے۔
فراہم کنندہ فی الحال سروس ریسورس مینجمنٹ کو سپورٹ کرتا ہے۔ "ورچوئل پرائیویٹ کلاؤڈ" (اس کے بعد VPC کہا جاتا ہے)۔ مستقبل میں، ہم سلیکٹیل کی طرف سے فراہم کردہ دیگر خدمات کے لیے وسائل کا انتظام شامل کرنے کا ارادہ رکھتے ہیں۔
جیسا کہ آپ پہلے ہی جانتے ہیں، VPC سروس OpenStack پر بنائی گئی ہے۔ تاہم، اس حقیقت کی وجہ سے کہ OpenStack عوامی کلاؤڈ کو پیش کرنے کے لیے مقامی ٹولز فراہم نہیں کرتا، ہم نے اضافی APIs کے سیٹ میں غائب فعالیت کو نافذ کیا جو پیچیدہ جامع اشیاء کے انتظام کو آسان بناتا ہے اور کام کو زیادہ آسان بناتا ہے۔ OpenStack میں دستیاب کچھ فعالیت براہ راست استعمال سے بند ہے، لیکن اس کے ذریعے دستیاب ہے۔ ہمارا API.
Selectel Terraform فراہم کنندہ میں اب درج ذیل VPC وسائل کا نظم کرنے کی صلاحیت شامل ہے:
منصوبے اور ان کے کوٹے؛
صارفین، ان کے کردار اور ٹوکن؛
عوامی ذیلی نیٹ، بشمول کراس ریجنل اور VRRP؛
سافٹ ویئر لائسنس.
فراہم کنندہ VPC API کے ساتھ کام کرنے کے لیے ہماری عوامی Go لائبریری کا استعمال کرتا ہے۔ لائبریری اور فراہم کنندہ دونوں ہی اوپن سورس ہیں، ان کی ترقی گیتوب پر کی جاتی ہے:
دوسرے کلاؤڈ وسائل، جیسے کہ ورچوئل مشینیں، ڈسک، کبرنیٹس کلسٹرز کا نظم کرنے کے لیے، آپ OpenStack Terraform فراہم کنندہ استعمال کر سکتے ہیں۔ دونوں فراہم کنندگان کے لیے سرکاری دستاویزات درج ذیل لنکس پر دستیاب ہیں:
شروع کرنے کے لیے، آپ کو ٹیرافارم انسٹال کرنے کی ضرورت ہے (انسٹالیشن پیکجز کے لیے ہدایات اور لنکس پر مل سکتے ہیں۔ سرکاری ویب سائٹ).
کام کرنے کے لیے، فراہم کنندہ کو سلیکٹیل API کلید درکار ہوتی ہے، جو اس میں بنائی گئی ہے۔ اکاؤنٹ کنٹرول پینلز.
سلیکٹیل کے ساتھ کام کرنے کے لیے مینی فیسٹس ٹیرافارم کا استعمال کرتے ہوئے یا تیار شدہ مثالوں کے سیٹ کا استعمال کرتے ہوئے بنائے گئے ہیں جو ہمارے گیتھب ریپوزٹری میں دستیاب ہیں: ٹیرافارم کی مثالیں.
مثالوں کے ساتھ ذخیرہ کو دو ڈائریکٹریوں میں تقسیم کیا گیا ہے۔
ماڈیولز, چھوٹے دوبارہ قابل استعمال ماڈیولز پر مشتمل جو پیرامیٹرز کا ایک سیٹ ان پٹ کے طور پر لیتے ہیں اور وسائل کے ایک چھوٹے سیٹ کا انتظام کرتے ہیں۔
مثال کے طور پر, باہم مربوط ماڈیولز کے مکمل سیٹ کی مثالوں پر مشتمل۔
Terraform انسٹال کرنے کے بعد، Selectel API کلید بنانے اور مثالوں سے اپنے آپ کو واقف کرنے کے بعد، آئیے عملی مثالوں کی طرف بڑھتے ہیں۔
فائل میں vars.tf تمام پیرامیٹرز جو کال کرنے کے وقت استعمال کیے جائیں گے ماڈیول بیان کیے گئے ہیں۔ ان میں سے کچھ کی ڈیفالٹ اقدار ہیں، مثال کے طور پر، سرور زون میں بنایا جائے گا۔ ru-3a مندرجہ ذیل ترتیب کے ساتھ:
اگر ضروری ہو تو، آپ ایک مختلف عوامی کلید کی وضاحت کر سکتے ہیں۔ کلید کو فائل پاتھ کے طور پر بیان کرنے کی ضرورت نہیں ہے؛ آپ سٹرنگ کے طور پر قدر بھی شامل کر سکتے ہیں۔
مزید اس فائل میں ماڈیولز لانچ کیے گئے ہیں۔ پروجیکٹ_کے ساتھ_صارف и سرور_لوکل_روٹ_ڈسک، جو ضروری وسائل کا انتظام کرتا ہے۔
دلیل تبدیلیوں کو نظر انداز کریں۔ آپ کو انتساب کی تبدیلیوں کو نظر انداز کرنے کی اجازت دیتا ہے۔ id ورچوئل مشین بنانے کے لیے استعمال ہونے والی تصویر کے لیے۔ VPC سروس میں، زیادہ تر عوامی تصاویر ہفتے میں ایک بار خود بخود اپ ڈیٹ ہو جاتی ہیں اور اسی وقت ان کی id بھی بدل جاتا ہے. یہ OpenStack جزو - Glance کی خصوصیات کی وجہ سے ہے، جس میں امیجز کو ناقابل تغیر ہستی تصور کیا جاتا ہے۔
اگر آپ کسی موجودہ سرور یا ڈسک کو تخلیق یا ترمیم کر رہے ہیں جس میں بطور دلیل موجود ہے۔ image_id استعمال کیا جاتا ہے۔ id عوامی تصویر، پھر اس تصویر کو اپ ڈیٹ کرنے کے بعد، Terraform مینی فیسٹ کو دوبارہ چلانے سے سرور یا ڈسک دوبارہ بن جائے گی۔ ایک دلیل کا استعمال کرتے ہوئے تبدیلیوں کو نظر انداز کریں۔ آپ کو ایسی صورت حال سے بچنے کی اجازت دیتا ہے.
نوٹ: دلیل تبدیلیوں کو نظر انداز کریں۔ Terraform میں کافی عرصہ پہلے شائع ہوا: کھینچ #2525.
دلیل ignore_resize_confirmation مقامی ڈسک، کور، یا سرور میموری کا کامیابی سے سائز تبدیل کرنے کی ضرورت ہے۔ ایسی تبدیلیاں OpenStack Nova جزو کے ذریعے درخواست کے ذریعے کی جاتی ہیں۔ سائز تبدیل. درخواست کے بعد ڈیفالٹ نووا سائز تبدیل سرور کو حالت میں رکھتا ہے۔ verify_resize اور صارف سے اضافی تصدیق کا انتظار کرتا ہے۔ تاہم، اس رویے کو تبدیل کیا جا سکتا ہے تاکہ نووا صارف کے اضافی اقدامات کا انتظار نہ کرے۔
مخصوص دلیل Terraform کو اسٹیٹس کا انتظار نہ کرنے کی اجازت دیتی ہے۔ verify_resize سرور کے لیے اور اس کے پیرامیٹرز کو تبدیل کرنے کے بعد سرور کے فعال حالت میں رہنے کے لیے تیار رہیں۔ دلیل OpenStack Terraform فراہم کنندہ کے ورژن 1.10.0 سے دستیاب ہے: کھینچ #422.
وسائل پیدا کرنا
مینی فیسٹس کو چلانے سے پہلے، براہ کرم نوٹ کریں کہ ہماری مثال میں، دو مختلف فراہم کنندگان شروع کیے گئے ہیں، اور OpenStack فراہم کنندہ سلیکٹیل فراہم کنندہ کے وسائل پر منحصر ہے، کیونکہ پروجیکٹ میں صارف بنائے بغیر، اس سے متعلق اشیاء کا انتظام کرنا ناممکن ہے۔ . بدقسمتی سے، اسی وجہ سے ہم صرف کمانڈ نہیں چلا سکتے terraform لاگو ہوتا ہے ہماری مثال کے اندر. ہمیں سب سے پہلے کرنے کی ضرورت ہے۔ لاگو کریں ماڈیول کے لیے پروجیکٹ_کے ساتھ_صارف اور اس کے بعد ہر چیز کے لیے۔
نوٹ: یہ مسئلہ ابھی تک Terraform میں حل نہیں ہوا ہے، آپ Github پر بحث کی پیروی کر سکتے ہیں۔ شمارہ نمبر 2430 и شمارہ نمبر 4149.
کمانڈ چلانے کے بعد، Terraform دکھائے گا کہ وہ کون سے وسائل بنانا چاہتا ہے اور تصدیق کے لیے پوچھے گا:
Plan: 3 to add, 0 to change, 0 to destroy.
Do you want to perform these actions?
Terraform will perform the actions described above.
Only 'yes' will be accepted to approve.
Enter a value: yes
ایک بار پروجیکٹ، صارف اور کردار بن جانے کے بعد، آپ باقی وسائل بنانا شروع کر سکتے ہیں:
آپ مخصوص آئی پی کا استعمال کرتے ہوئے SSH کے ذریعے تخلیق کردہ ورچوئل مشین کے ساتھ کام کر سکتے ہیں۔
وسائل میں ترمیم کرنا
Terraform کے ذریعے وسائل پیدا کرنے کے علاوہ ان میں ترمیم بھی کی جا سکتی ہے۔
مثال کے طور پر، آئیے پیرامیٹرز کی قدروں کو تبدیل کرکے اپنے سرور کے لیے کور اور میموری کی تعداد میں اضافہ کریں۔ سرور_vcpus и سرور_رام_ایم بی فائل میں مثالیں/vpc/server_local_root_disk/main.tf:
ہمارے میں مثال کے ذخیرے آپ نیٹ ورک ڈرائیوز کے ساتھ ورچوئل مشینیں بنانے کے لیے مینی فیسٹس بھی دیکھ سکتے ہیں۔
Kubernetes کلسٹر بنانے کی مثال
اس سے پہلے کہ ہم اگلی مثال پر جائیں، ہم پہلے بنائے گئے وسائل کو صاف کر دیں گے۔ منصوبے کی جڑ میں ایسا کرنے کے لئے terraform-examples/examples/vpc/server_local_root_disk آئیے OpenStack آبجیکٹ کو حذف کرنے کے لیے کمانڈ چلائیں:
دونوں صورتوں میں، آپ کو تمام اشیاء کو حذف کرنے کی تصدیق کرنے کی ضرورت ہوگی:
Do you really want to destroy all resources?
Terraform will destroy all your managed infrastructure, as shown above.
There is no undo. Only 'yes' will be accepted to confirm.
Enter a value: yes
یہ مثال ایک پروجیکٹ بناتی ہے، ایک صارف جس کا پروجیکٹ میں کردار ہوتا ہے، اور ایک Kubernetes کلسٹر کو بڑھاتا ہے۔ فائل میں vars.tf آپ پہلے سے طے شدہ قدریں دیکھ سکتے ہیں، جیسے نوڈس کی تعداد، ان کی خصوصیات، Kubernetes ورژن وغیرہ۔
پہلی مثال کی طرح وسائل بنانے کے لیے، سب سے پہلے ہم ماڈیولز کو شروع کرنا اور ماڈیول وسائل بنانا شروع کریں گے۔ پروجیکٹ_کے ساتھ_صارفاور پھر باقی سب کچھ بنانا:
ہم OpenStack Magnum جزو کے ذریعے Kubernetes کلسٹرز کی تخلیق اور انتظام کو منتقل کریں گے۔ آپ ہمارے ایک میں کلسٹر کے ساتھ کام کرنے کے طریقہ کے بارے میں مزید جان سکتے ہیں۔ پچھلے مضامیناس کے ساتھ ساتھ علم کی بنیاد.
کلسٹر کی تیاری کے دوران، ڈسک اور ورچوئل مشینیں بنائی جائیں گی اور تمام ضروری اجزاء نصب کیے جائیں گے۔ تیاری میں تقریباً 4 منٹ لگتے ہیں، اس دوران Terraform پیغامات دکھائے گا جیسے:
module.kubernetes_cluster.openstack_containerinfra_cluster_v1.cluster_1: Still creating... (3m0s elapsed)
انسٹالیشن مکمل ہونے کے بعد، Terraform اشارہ کرے گا کہ کلسٹر تیار ہے اور اس کی شناخت ظاہر کرے گا:
یوٹیلیٹی کے ذریعے بنائے گئے Kubernetes کلسٹر کا انتظام کرنا کیوبیکٹل آپ کو کلسٹر رسائی فائل حاصل کرنے کی ضرورت ہے۔ ایسا کرنے کے لیے، اپنے اکاؤنٹ میں پروجیکٹس کی فہرست میں Terraform کے ذریعے بنائے گئے پروجیکٹ پر جائیں:
اگلا، جیسے لنک پر عمل کریں۔ xxxxxx.selvpc.ruجو پروجیکٹ کے نام کے نیچے ظاہر ہوتا ہے:
لاگ ان معلومات کے لیے، وہ صارف نام اور پاس ورڈ استعمال کریں جو آپ نے Terraform کے ذریعے بنایا ہے۔ اگر آپ نے دھوکہ نہیں دیا ہے۔ vars.tf یا main.tf ہماری مثال کے طور پر، صارف کا نام ہوگا۔ tf_user. آپ کو متغیر کی قدر کو پاس ورڈ کے طور پر استعمال کرنا چاہیے۔ TF_VAR_user_password، جو آغاز کے وقت بیان کیا گیا تھا۔ terraform لاگو ہوتا ہے پہلے
پروجیکٹ کے اندر آپ کو ٹیب پر جانے کی ضرورت ہے۔ Kubernetes:
یہ وہ جگہ ہے جہاں ٹیرافارم کے ذریعے بنایا گیا کلسٹر واقع ہے۔ کے لیے فائل ڈاؤن لوڈ کریں۔ کیوبیکٹل آپ "رسائی" ٹیب پر کر سکتے ہیں:
تنصیب کی ہدایات اسی ٹیب پر موجود ہیں۔ کیوبیکٹل اور ڈاؤن لوڈ کا استعمال config.yaml.
لانچ کے بعد۔ کیوبیکٹل اور ماحولیاتی متغیر کو ترتیب دینا KUBECONFIG آپ Kubernetes استعمال کر سکتے ہیں:
جب نوڈس کی تعداد بدل جائے گی، کلسٹر دستیاب رہے گا۔ Terraform کے ذریعے نوڈ شامل کرنے کے بعد، آپ اسے بغیر کسی اضافی ترتیب کے استعمال کر سکتے ہیں:
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
tf-cluster-rz6nggvs4va7-master-0 Ready,SchedulingDisabled master 8m v1.12.4
tf-cluster-rz6nggvs4va7-minion-0 Ready <none> 8m v1.12.4
tf-cluster-rz6nggvs4va7-minion-1 Ready <none> 8m v1.12.4
tf-cluster-rz6nggvs4va7-minion-2 Ready <none> 3m v1.12.4
حاصل يہ ہوا
اس مضمون میں ہم کام کرنے کے اہم طریقوں سے واقف ہو گئے۔ "ورچوئل پرائیویٹ کلاؤڈ" Terraform کے ذریعے. اگر آپ آفیشل سلیکٹیل ٹیرافارم فراہم کنندہ استعمال کرتے ہیں اور تاثرات فراہم کرتے ہیں تو ہمیں خوشی ہوگی۔
Selectel Terraform فراہم کنندہ میں پائے جانے والے کسی بھی کیڑے کے ذریعے اطلاع دی جا سکتی ہے۔ گیتھب کے مسائل.