افراتفري ۽ دستي جي معمولي کي منهن ڏيڻ لاء Terraform ۾ نمونن. ميڪسم ڪوسٽرڪين (ايڪسٽين)

افراتفري ۽ دستي جي معمولي کي منهن ڏيڻ لاء Terraform ۾ نمونن. ميڪسم ڪوسٽرڪين (ايڪسٽين)

اهو لڳي ٿو ته Terraform ڊولپرز AWS انفراسٽرڪچر سان ڪم ڪرڻ لاءِ ڪافي آسان بهترين طريقا پيش ڪن ٿا. رڳو اتي هڪ nuance آهي. وقت سان گڏ، ماحول جو تعداد وڌائي ٿو، خاصيتون هر هڪ ۾ ظاهر ٿيندا آهن. پاڙيسري علائقي ۾ ايپليڪيشن اسٽيڪ جي تقريبن هڪ ڪاپي ظاهر ٿئي ٿي. ۽ Terraform ڪوڊ کي احتياط سان نقل ڪرڻ جي ضرورت آهي ۽ نئين ضرورتن جي مطابق ايڊٽ ڪرڻ يا برفاني ٽڪري ٺاهڻ جي ضرورت آهي.

منهنجي رپورٽ Terraform ۾ نمونن جي باري ۾ آهي افراتفري کي منهن ڏيڻ لاءِ ۽ وڏي ۽ ڊگھي منصوبن تي دستوري معمول.

وڊيو:

افراتفري ۽ دستي جي معمولي کي منهن ڏيڻ لاء Terraform ۾ نمونن. ميڪسم ڪوسٽرڪين (ايڪسٽين)

مان 40 سالن جو آهيان، مان 20 سالن کان آئي ٽي ۾ آهيان. مان 12 سالن تائين Ixtens تي ڪم ڪري رهيو آهيان. اسان اي ڪامرس تي هلندڙ ترقي ۾ مصروف آهيون. ۽ مان 5 سالن کان DevOps جي مشق ڪري رهيو آهيان.

افراتفري ۽ دستي جي معمولي کي منهن ڏيڻ لاء Terraform ۾ نمونن. ميڪسم ڪوسٽرڪين (ايڪسٽين)

منهنجي ڪهاڻي هڪ ڪمپني ۾ هڪ منصوبي ۾ تجربو بابت هوندو جنهن جو نالو مان نه چوندس، هڪ غير ظاهر ڪرڻ واري معاهدي جي پويان لڪائي.

منصوبي جي دائري کي سمجهڻ لاءِ سلائڊ تي نمبر ڏنل آهن. ۽ هر شيءِ جو مان اڳتي چوڻ وارو آهيان Amazon سان لاڳاپيل آهي.

افراتفري ۽ دستي جي معمولي کي منهن ڏيڻ لاء Terraform ۾ نمونن. ميڪسم ڪوسٽرڪين (ايڪسٽين)

مون هن منصوبي ۾ 4 سال اڳ شامل ٿيو. ۽ انفراسٽرڪچر ريفڪٽرنگ مڪمل جھول ۾ هئي، ڇاڪاڻ ته پروجيڪٽ وڌي چڪو هو. ۽ اهي نمونا جيڪي استعمال ڪيا ويا، اهي هاڻي مناسب نه آهن. ۽ منصوبي جي سڀني رٿابندي ڪيل ترقي ڏني وئي، اهو ضروري هو ته ڪجهه نئين سان گڏ اچي.

Matvey جي مهرباني، جنهن ڪالهه اسان کي ٻڌايو ته ڊڊو پيزا تي ڇا ٿيو. 4 سال اڳ اسان سان ائين ٿيو هو.

ڊولپرز آيا ۽ انفراسٽرڪچر ڪوڊ ٺاهڻ شروع ڪيو.

سڀ کان وڌيڪ واضع سبب ڇو ته هي گهربل هو مارڪيٽ جو وقت. اهو يقيني بڻائڻ ضروري هو ته DevOps ٽيم رولنگ ڪرڻ وقت ڪا رڪاوٽ نه هئي. ۽ ٻين شين مان، Terraform ۽ Puppet پهرين سطح تي استعمال ڪيا ويا.

افراتفري ۽ دستي جي معمولي کي منهن ڏيڻ لاء Terraform ۾ نمونن. ميڪسم ڪوسٽرڪين (ايڪسٽين)

Terraform HashiCorp کان هڪ کليل ذريعو منصوبو آهي. ۽ انهن لاءِ جيڪي نٿا ڄاڻن ته اهو ڇا آهي، ايندڙ ڪجهه سلائڊ.

افراتفري ۽ دستي جي معمولي کي منهن ڏيڻ لاء Terraform ۾ نمونن. ميڪسم ڪوسٽرڪين (ايڪسٽين)

بنيادي ڍانچي جي طور تي ڪوڊ جو مطلب آهي ته اسان اسان جي انفراسٽرڪچر کي بيان ڪري سگهون ٿا ۽ ڪجهه روبوٽس کي پڪ ڪرڻ لاء پڇي سگهون ٿا ته اسان انهن وسيلن کي حاصل ڪريون ٿا جيڪي اسان بيان ڪيا آهن.

مثال طور، اسان کي هڪ مجازي مشين جي ضرورت آهي. اسان بيان ڪنداسين، ڪجھ گهربل پيٽرولر شامل ڪريو.

افراتفري ۽ دستي جي معمولي کي منهن ڏيڻ لاء Terraform ۾ نمونن. ميڪسم ڪوسٽرڪين (ايڪسٽين)

ان کان پوء، اسان ڪنسول ۾ Amazon تائين رسائي کي ترتيب ڏينداسين. ۽ Terraform منصوبي لاء پڇو. Terraform منصوبو چوندو: "ٺيڪ، توهان جي وسيلن لاء، اسان اهي شيون ڪري سگهون ٿا." ۽ گهٽ ۾ گهٽ هڪ وسيلو شامل ڪيو ويندو. ۽ ڪابه تبديلي جي توقع ناهي.

افراتفري ۽ دستي جي معمولي کي منهن ڏيڻ لاء Terraform ۾ نمونن. ميڪسم ڪوسٽرڪين (ايڪسٽين)

هر شيءِ کان پوءِ توهان لاءِ مناسب آهي، توهان پڇي سگهو ٿا Terraform لاڳو ۽ Terraform توهان لاءِ هڪ مثال ٺاهيندو، ۽ توهان کي پنهنجي ڪلائوڊ ۾ هڪ ورچوئل مشين ملندي.

افراتفري ۽ دستي جي معمولي کي منهن ڏيڻ لاء Terraform ۾ نمونن. ميڪسم ڪوسٽرڪين (ايڪسٽين)

وڌيڪ، اسان جو منصوبو ترقي ڪري ٿو. اسان اتي ڪجھ تبديليون شامل ڪري رھيا آھيون. اسان وڌيڪ مثالن لاءِ پڇون ٿا، اسان 53 داخلون شامل ڪيون ٿا.

افراتفري ۽ دستي جي معمولي کي منهن ڏيڻ لاء Terraform ۾ نمونن. ميڪسم ڪوسٽرڪين (ايڪسٽين)

۽ اسان ورجائي. مهرباني ڪري منصوبه بندي ڪريو. اسان ڏسون ٿا ته ڪهڙيون تبديليون رٿيل آهن. لاڳو ڪريو. ۽ تنهنڪري اسان جو انفراسٽرڪچر وڌي ٿو.

Terraform اهڙي شيء کي استعمال ڪري ٿو جيئن رياست فائلون. اھو آھي، اھو انھن سڀني تبديلين کي محفوظ ڪري ٿو جيڪي Amazon ڏانھن وڃو ھڪڙي فائل ۾، جتي توھان بيان ڪيل ھر ھڪڙي وسيلن لاءِ، اتي لاڳاپيل وسيلا آھن جيڪي Amazon ۾ ٺاھيا ويا آھن. اهڙيء طرح، جڏهن هڪ وسيلن جي وضاحت کي تبديل ڪندي، Terraform ڄاڻي ٿو ته ڇا Amazon ۾ تبديل ٿيڻ جي ضرورت آهي.

افراتفري ۽ دستي جي معمولي کي منهن ڏيڻ لاء Terraform ۾ نمونن. ميڪسم ڪوسٽرڪين (ايڪسٽين)

اهي رياستي فائلون اصل ۾ صرف فائلون هيون. ۽ اسان انهن کي Git ۾ ذخيرو ڪيو، جيڪو انتهائي مشڪل هو. مسلسل ڪو ماڻهو تبديل ڪرڻ لاء وساريو، ۽ اتي ڪيترائي تڪرار هئا.

هاڻي اهو ممڪن آهي ته پس منظر استعمال ڪيو وڃي، يعني Terraform اشارو ڪيو ويو آهي ڪهڙي بالٽ ۾، جنهن جي ذريعي اسٽيٽ فائل کي محفوظ ڪيو وڃي. ۽ Terraform پاڻ هن رياستي فائل حاصل ڪرڻ جو خيال رکندو، سڀ جادو ڪندي ۽ آخري نتيجو واپس آڻيندو.

افراتفري ۽ دستي جي معمولي کي منهن ڏيڻ لاء Terraform ۾ نمونن. ميڪسم ڪوسٽرڪين (ايڪسٽين)

اسان جو انفراسٽرڪچر وڌي رهيو آهي. هتي اسان جو ڪوڊ آهي. ۽ هاڻي اسان نه ٿا چاهيون صرف هڪ ورچوئل مشين ٺاهڻ، اسان چاهيون ٿا هڪ ٽيسٽ ماحول.

افراتفري ۽ دستي جي معمولي کي منهن ڏيڻ لاء Terraform ۾ نمونن. ميڪسم ڪوسٽرڪين (ايڪسٽين)

Terraform توهان کي اهڙي شيءِ ٺاهڻ جي اجازت ڏئي ٿو جيئن ماڊل، يعني ساڳي شيءِ کي ڪنهن فولڊر ۾ بيان ڪريو.

افراتفري ۽ دستي جي معمولي کي منهن ڏيڻ لاء Terraform ۾ نمونن. ميڪسم ڪوسٽرڪين (ايڪسٽين)

۽، مثال طور، جاچ ۾، هن ماڊل کي ڪال ڪريو ۽ ساڳي شيء حاصل ڪريو ڄڻ ته اسان ماڊل ۾ ئي Terraform لاڳو ڪري رهيا آهيون. هتي جاچ لاءِ ڪوڊ آهي.

افراتفري ۽ دستي جي معمولي کي منهن ڏيڻ لاء Terraform ۾ نمونن. ميڪسم ڪوسٽرڪين (ايڪسٽين)

پيداوار لاءِ، اسان اتي ڪجھ تبديليون موڪلي سگھون ٿا، ڇاڪاڻ ته جاچ ۾ اسان کي وڏن مثالن جي ضرورت نه آھي، پيداوار ۾ وڏا مثال ھٿ ۾ ايندا.

افراتفري ۽ دستي جي معمولي کي منهن ڏيڻ لاء Terraform ۾ نمونن. ميڪسم ڪوسٽرڪين (ايڪسٽين)

۽ پوء آئون واپس منصوبي ڏانهن ويندس. اهو هڪ ڏکيو ڪم هو، انفراسٽرڪچر تمام وڏي رٿابندي ڪئي وئي هئي. ۽ اهو ضروري هو ته ڪنهن به طرح سڀني ڪوڊ کي رکڻ گهرجي ته جيئن اهو هر ڪنهن لاء آسان هجي: انهن لاء جيڪي هن ڪوڊ تي سار سنڀال ڪن ٿا، ۽ انهن لاء جيڪي تبديليون ڪن ٿا. ۽ اها رٿابندي ڪئي وئي ته ڪو به ڊولپر وڃي سگهي ٿو ۽ انفراسٽرڪچر کي درست ڪري سگهي ٿو جيئن هن جي پليٽ فارم جي حصي لاءِ گهربل هجي.

هي هڪ ڊاريڪٽري جو وڻ آهي جيڪو HashiCorp پاران تجويز ڪيو ويو آهي جيڪڏهن توهان وٽ وڏو منصوبو آهي ۽ اهو سمجهه ۾ اچي ٿو ته پوري انفراسٽرڪچر کي ڪجهه ننڍڙن ٽڪرن ۾ ورهايو، ۽ هر ٽڪرا کي الڳ فولڊر ۾ بيان ڪريو.

هڪ وسيع وسيلا لائبريري هجڻ سان، توهان ساڳئي شيء بابت جانچ ۽ پيداوار ۾ سڏي سگهو ٿا.

افراتفري ۽ دستي جي معمولي کي منهن ڏيڻ لاء Terraform ۾ نمونن. ميڪسم ڪوسٽرڪين (ايڪسٽين)

اسان جي حالت ۾، اهو مڪمل طور تي مناسب نه هو، ڇاڪاڻ ته ڊولپرز لاء ٽيسٽ اسٽيڪ يا ٽيسٽ لاء ڪجهه آسان حاصل ڪرڻ جي ضرورت آهي. ۽ مان نه ٿو چاهيان ته فولڊر ذريعي وڃو ۽ صحيح ترتيب ۾ لاڳو ڪريو، ۽ پريشان ٿي ته بنياد وڌندو، ۽ پوء اهو مثال جيڪو هن بنياد کي استعمال ڪري ٿو اڀرندو. تنهن ڪري، سڀ جاچ شروع ڪئي وئي هڪ فولڊر مان. ساڳيا ماڊل اتي سڏيا ويا، پر سڀ ڪجهه هڪ رن ۾ گذري ويو.

Terraform سڀني انحصار جو خيال رکندو آهي. ۽ اهو هميشه انهي ترتيب ۾ وسيلا ٺاهي ٿو ته جيئن توهان هڪ IP پتو حاصل ڪري سگهو ٿا، مثال طور، تازو ٺهيل مثال مان، ۽ هن IP پتي کي route53 داخلا ۾ حاصل ڪريو.

ان کان سواء، پليٽ فارم تمام وڏو آهي. ۽ هڪ ٽيسٽ اسٽيڪ کي هلائڻ، جيتوڻيڪ هڪ ڪلاڪ لاء، جيتوڻيڪ 8 ڪلاڪن لاء، ڪافي قيمتي ڪاروبار آهي.

۽ اسان هن ڪاروبار کي خودڪار ڪيو آهي. ۽ جينڪنز نوڪري اسٽيڪ کي هلائڻ جي اجازت ڏني. اهو ضروري هو ته ان ۾ هڪ پل جي درخواست شروع ڪرڻ جي تبديلين سان جيڪي ڊولپر کي جانچڻ چاهي ٿو، سڀني ضروري اختيارن، اجزاء ۽ سائيز کي بيان ڪريو. جيڪڏهن هو ڪارڪردگي جاچ چاهي ٿو، ته هو وڌيڪ مثال وٺي سگهي ٿو. جيڪڏهن هن کي صرف جانچڻ جي ضرورت آهي ته ڪجهه فارم کلي ٿو، هو گهٽ ۾ گهٽ اجرت تي شروع ڪري سگهي ٿو. ۽ اهو پڻ ظاهر ڪيو ته ڇا ڪلستر جي ضرورت آهي يا نه، وغيره.

۽ پوء جينڪنز هڪ شيل اسڪرپٽ کي ڌڪايو جيڪو ٿورڙي تبديل ڪيو ڪوڊ کي Terraform فولڊر ۾. غير ضروري فائلن کي هٽايو، ضروري فائلون شامل ڪيون. ۽ پوء، Terraform جي هڪ رن سان لاڳو، اسٽيڪ گلاب.

۽ پوءِ ٻيا به مرحلا هئا جن ۾ مان وڃڻ نٿو چاهيان.

افراتفري ۽ دستي جي معمولي کي منهن ڏيڻ لاء Terraform ۾ نمونن. ميڪسم ڪوسٽرڪين (ايڪسٽين)

ان حقيقت جي ڪري ته جاچ لاءِ اسان کي پروڊڪشن جي ڀيٽ ۾ ٿورڙي وڌيڪ اختيارن جي ضرورت هئي، اسان کي ماڊلز جون ڪاپيون ٺاهڻيون پيون ته جيئن انهن ڪاپين ۾ اسان اهي خاصيتون شامل ڪري سگهون، جيڪي صرف ٽيسٽنگ ۾ گهربل هونديون آهن.

۽ اهو ائين ٿيو ته جاچ ۾، اهو لڳي ٿو ته توهان انهن تبديلين کي جانچڻ چاهيو ٿا جيڪي آخرڪار پيداوار ڏانهن ويندا. پر حقيقت ۾، هڪ شيء آزمائي ڪئي وئي، ۽ پيداوار ۾ ٿورو مختلف استعمال ڪيو ويو. ۽ نموني ۾ هڪ ننڍڙو وقفو هو ته پيداوار ۾ سڀ تبديليون آپريشن ٽيم پاران لاڳو ڪيون ويون آهن. ۽ ڪڏهن ڪڏهن اهو ظاهر ٿيو ته اهي تبديليون جيڪي ٽيسٽ کان پيداوار ڏانهن وڃڻ گهرجن، اهي ٻئي نسخي ۾ رهي.

ان کان علاوه، اتي هڪ مسئلو هو ته هڪ نئين خدمت شامل ڪئي وئي، جيڪا ڪجهه موجوده سروس کان ٿورو مختلف هئي. ۽ موجوده ماڊل کي تبديل ڪرڻ جي بدران، توهان کي ان جي ڪاپي ٺاهڻ ۽ ضروري تبديليون شامل ڪرڻ گهرجن.

حقيقت ۾، Terraform هڪ حقيقي ٻولي ناهي. هي هڪ اعلان آهي. جيڪڏهن اسان کي ڪجهه اعلان ڪرڻ جي ضرورت آهي، ته پوء اسان ان جو اعلان ڪريون ٿا. ۽ اهو سڀ ڪم ڪري ٿو.

ڪنهن موقعي تي، جڏهن منهنجي هڪ ڇڪڻ واري درخواست تي بحث ڪيو ويو، منهنجي هڪ ساٿي چيو ته اهو ضروري ناهي ته برفاني ڦڙا پيدا ڪرڻ. مون کي عجب لڳو ته هن جو مطلب ڇا آهي. هڪ اهڙي سائنسي حقيقت آهي ته دنيا ۾ ٻه هڪجهڙا برفاني ڦڙا نه آهن، اهي سڀ ڪجهه ٿورا، پر مختلف آهن. ۽ جيترو جلدي مون اهو ٻڌو، مون کي فوري طور تي ٽرافارم ڪوڊ جو پورو وزن محسوس ڪيو. ڇاڪاڻ ته جڏهن ان کي ورجن کان ورجن ڏانهن منتقل ڪرڻ جي ضرورت هئي، Terraform کي ٽوڙڻ واري زنجير جي تبديلي جي ضرورت هئي، يعني ڪوڊ هاڻي ايندڙ ورزن سان مطابقت نه رکندو هو. ۽ مون کي هڪ ڇڪڻ جي درخواست ڪرڻي هئي، جيڪا انفراسٽرڪچر ۾ لڳ ڀڳ اڌ فائلن کي ڍڪيندي هئي، انفراسٽرڪچر کي Terraform جي ايندڙ ورزن تائين آڻڻ لاءِ.

۽ پوءِ اهڙي برفاني ڦڙي جي ظاهر ٿيڻ کان پوءِ، سمورو ٽيرافارم ڪوڊ جنهن کي اسان برف جي هڪ وڏي، وڏي ڍير ۾ تبديل ڪري ڇڏيو هو.

هڪ خارجي ڊولپر لاء جيڪو آپريشن کان ٻاهر آهي، اهو هن لاء گهڻو ڪجهه ناهي، ڇاڪاڻ ته هن هڪ پل جي درخواست ڪئي، هن جو وسيلو شروع ڪيو. ۽ اھو اھو آھي، اھو سندس فڪر نه آھي. ۽ DevOps ٽيم جيڪا يقيني بڻائي ٿي ته سڀ ڪجهه ٺيڪ آهي انهن سڀني تبديلين کي ٺاهڻ جي ضرورت آهي. ۽ انهن تبديلين جي قيمت تمام گهڻي وڌي وئي، هر اضافي برفاني ڦوڪ سان.

افراتفري ۽ دستي جي معمولي کي منهن ڏيڻ لاء Terraform ۾ نمونن. ميڪسم ڪوسٽرڪين (ايڪسٽين)

هتي هڪ ڪهاڻي آهي ته ڪيئن هڪ سيمينار ۾ هڪ شاگرد هڪ بليڪ بورڊ تي چاڪ سان ٻه مڪمل حلقا ٺاهي ٿو. ۽ استاد حيران ٿي ويو ته ڪيئن هن هڪ کمپاس کان سواء ايتري آساني سان ٺاھڻ جو انتظام ڪيو. شاگرد جواب ڏنو: ”ڏاڍو سادو آهي، مون فوج ۾ ٻن سالن لاءِ گوشت جي گرائنڊر ڪئي.

۽ جن چئن سالن کان آئون هن پروجيڪٽ تي رهيو آهيان، مان اٽڪل ٻن سالن کان Terraform ڪري رهيو آهيان. ۽، يقيناً، مون وٽ ڪجھ ترڪيبون آھن، ڪي ٽوٽڪا آھن ته ڪيئن Terraform ڪوڊ کي آسان بڻايو وڃي، ان سان گڏ ڪم ڪريو ھڪ پروگرامنگ ٻولي وانگر ۽ ڊولپرز تي بار گھٽايو جن کي ھن ڪوڊ کي اپڊيٽ رکڻ گھرجي.

افراتفري ۽ دستي جي معمولي کي منهن ڏيڻ لاء Terraform ۾ نمونن. ميڪسم ڪوسٽرڪين (ايڪسٽين)

پهرين شيءِ جنهن سان مان شروع ڪرڻ چاهيندس اهو آهي Symlinks. Terraform وٽ تمام گھڻو بار بار ڪوڊ آھي. مثال طور، هڪ فراهم ڪندڙ کي فون ڪرڻ لڳ ڀڳ هر نقطي تي جتي اسان بنيادي ڍانچي جو هڪ ٽڪرو ٺاهيندا آهيون ساڳيو آهي. ۽ اهو منطقي آهي ته ان کي الڳ ڊيڊ ۾ وجهي. ۽ جتي مهيا ڪندڙ کي گهربل هجي ته هن فائل ۾ Symlinks ٺاهي.

افراتفري ۽ دستي جي معمولي کي منهن ڏيڻ لاء Terraform ۾ نمونن. ميڪسم ڪوسٽرڪين (ايڪسٽين)

مثال طور، توهان استعمال ڪريو فرض ڪردار پيداوار ۾، جيڪو توهان کي اجازت ڏئي ٿو رسائي حاصل ڪرڻ جا حق ڪجهه ٻاهرين Amazon اڪائونٽ تائين. ۽ ھڪڙي فائل کي تبديل ڪرڻ سان، باقي سڀئي جيڪي وسيلن جي وڻ ۾ آھن انھن کي گھربل حق حاصل ھوندا ته جيئن Terraform کي معلوم ٿئي ته Amazon جي ڪھڙي حصي تائين رسائي حاصل ڪرڻي آھي.

افراتفري ۽ دستي جي معمولي کي منهن ڏيڻ لاء Terraform ۾ نمونن. ميڪسم ڪوسٽرڪين (ايڪسٽين)

ڪٿي Symlinks ڪم نه ڪندا آھن؟ جيئن مون چيو، Terraform وٽ رياستي فائلون آهن. ۽ اهي ڏاڍا، تمام سٺا آهن. پر حقيقت اها آهي ته Terraform تمام پهرين ۾ پس منظر جي شروعات ڪري ٿو. ۽ هو انهن پيراگرافن ۾ ڪي به متغير استعمال نٿا ڪري سگهن، انهن کي هميشه متن ۾ لکڻو پوندو.

۽ نتيجي طور، جڏهن ڪو ماڻهو نئون وسيلو ٺاهي ٿو، هو نقل ڪري ٿو ڪوڊ جو حصو ٻين فولڊرن مان. ۽ هو ڪنجي سان يا بالٽ سان غلطي ڪري سگهي ٿو. مثال طور، هو هڪ سينڊ باڪس واري شيءِ کي سينڊ باڪس مان ٺاهي ٿو، ۽ پوءِ ان کي پيداوار ۾ ٺاهي ٿو. ۽ تنهنڪري اهو ٿي سگهي ٿو ته پيداوار ۾ بالٽ سينڊ باڪس مان استعمال ڪيو ويندو. يقينا، اهي جلدي ڳوليندا. اهو ممڪن آهي ته ڪنهن به طريقي سان هن کي درست ڪرڻ، پر ان جي باوجود، اهو وقت جو ضايع آهي ۽ ڪجهه حد تائين وسيلن جو.

افراتفري ۽ دستي جي معمولي کي منهن ڏيڻ لاء Terraform ۾ نمونن. ميڪسم ڪوسٽرڪين (ايڪسٽين)

اسان اڳتي ڇا ڪري سگهون ٿا؟ Terraform سان ڪم ڪرڻ کان اڳ، توھان کي ان کي شروع ڪرڻ جي ضرورت آھي. شروعات جي وقت تي، Terraform سڀني پلگ ان کي ڊائون لوڊ ڪري ٿو. ڪجهه نقطي تي، اهي هڪ monolith کان هڪ وڌيڪ microservice فن تعمير ۾ ڀڄي ويا. ۽ توهان کي هميشه ڪرڻ جي ضرورت آهي Terraform init ته جيئن اهو سڀ ماڊلز، سڀ پلگ ان کي ڇڪي.

۽ توھان استعمال ڪري سگھو ٿا شيل اسڪرپٽ، جيڪو، پھريون، سڀ متغير حاصل ڪري سگھن ٿا. شيل اسڪرپٽ لامحدود آهي. ۽، ٻيو، طريقو. جيڪڏهن اسان هميشه اهو رستو استعمال ڪندا آهيون جيڪو مخزن ۾ آهي رياست فائل جي ڪنجي طور، پوء، مطابق، غلطي هتي خارج ٿي ويندي.

افراتفري ۽ دستي جي معمولي کي منهن ڏيڻ لاء Terraform ۾ نمونن. ميڪسم ڪوسٽرڪين (ايڪسٽين)

ڪٿي ڊيٽا حاصل ڪرڻ لاء؟ JSON فائل. Terraform توهان کي انفراسٽرڪچر لکڻ جي اجازت ڏئي ٿو نه رڳو hcl (HashiCorp Configuration Language) ۾، پر JSON ۾ پڻ.

JSON شيل اسڪرپٽ مان پڙهڻ آسان آهي. انهي جي مطابق، توهان هڪ ترتيب واري فائل کي بالٽ سان ڪنهن جاء تي رکي سگهو ٿا. ۽ ھن بالٽ کي استعمال ڪريو Terraform ڪوڊ ۽ شيل اسڪرپٽ ۾ شروعاتي لاءِ.

افراتفري ۽ دستي جي معمولي کي منهن ڏيڻ لاء Terraform ۾ نمونن. ميڪسم ڪوسٽرڪين (ايڪسٽين)

Terraform بالٽ هجڻ ضروري ڇو آهي؟ ڇو ته اتي هڪ اهڙي شيء آهي جيئن ريموٽ اسٽيٽ فائلون. اهو آهي، جڏهن آئون ڪجهه وسيلا گڏ ڪريان ٿو، Amazon کي ٻڌائڻ لاءِ: ”مهرباني ڪري مثال وڌايو“، مون کي تمام گهڻا گهربل پيٽرولر بيان ڪرڻ گهرجن.

۽ اهي سڃاڻپ ڪندڙ ڪنهن ٻئي فولڊر ۾ محفوظ ٿيل آهن. ۽ مان ان کي وٺي سگهان ٿو ۽ چوان ٿو: "Terraform، مهرباني ڪري ان وسيلن جي رياستي فائل ڏانهن وڃو ۽ مون کي اهي سڃاڻپ ڪندڙ حاصل ڪريو." ۽ اهڙيءَ طرح مختلف علائقن يا ماحول جي وچ ۾ هڪ قسم جو اتحاد هوندو آهي.

اهو هميشه ممڪن ناهي ته ريموٽ اسٽيٽ فائل استعمال ڪرڻ. مثال طور، توهان دستي طور تي هڪ VPC ٺاهي. ۽ Terraform ڪوڊ جيڪو VPC ٺاهي ٿو اهو هڪ مختلف VPC ٺاهي ٿو جيڪو تمام گهڻو وقت وٺندو آهي ۽ توهان کي هڪ ٻئي سان ترتيب ڏيڻو پوندو، تنهنڪري توهان هيٺ ڏنل چال استعمال ڪري سگهو ٿا.

افراتفري ۽ دستي جي معمولي کي منهن ڏيڻ لاء Terraform ۾ نمونن. ميڪسم ڪوسٽرڪين (ايڪسٽين)

اھو آھي، ھڪڙو ماڊل ٺاھيو جيڪو، جيئن ھو، ٺاھي ٿو VPC ۽ توھان کي سڃاڻيندڙ ڏئي ٿو، پر حقيقت ۾ ھڪڙي فائل آھي هارڊ ڪوڊ ٿيل قدرن سان جيڪا ساڳي مثال ٺاھڻ لاءِ استعمال ٿي سگھي ٿي.

افراتفري ۽ دستي جي معمولي کي منهن ڏيڻ لاء Terraform ۾ نمونن. ميڪسم ڪوسٽرڪين (ايڪسٽين)

اهو هميشه ضروري ناهي ته بادل ۾ اسٽيٽ فائل کي محفوظ ڪرڻ لاء. مثال طور، جڏهن ماڊلز جي جاچ ڪري رهيا آهيو، توهان استعمال ڪري سگهو ٿا پس منظر جي شروعات، جڏهن فائل محفوظ ڪئي ويندي صرف ڊسڪ تي ٽيسٽ جي وقت.

افراتفري ۽ دستي جي معمولي کي منهن ڏيڻ لاء Terraform ۾ نمونن. ميڪسم ڪوسٽرڪين (ايڪسٽين)

هاڻي ٿورڙي جاچ بابت. Terraform ۾ ڇا آزمائي سگھجي ٿو؟ شايد، گهڻو ڪجهه ممڪن آهي، پر مان انهن 4 شين بابت ڳالهائيندس.

HashiCorp کي سمجھ آهي ته ڪيئن فارميٽ ڪجي Terraform ڪوڊ. ۽ Terraform fmt توهان کي ڪوڊ فارميٽ ڪرڻ جي اجازت ڏئي ٿي جيڪا توهان ان عقيدي مطابق ايڊٽ ڪيو. ان جي مطابق، ٽيسٽن کي لازمي طور تي چيڪ ڪرڻ گهرجي ته ڇا فارميٽنگ ان سان ملائي ٿي جيڪا HashiCorp جي وصيت ڪئي وئي آهي، انهي ڪري ته توهان کي بريڪٽس وغيره جي جڳهه کي تبديل ڪرڻ جي ضرورت ناهي.

افراتفري ۽ دستي جي معمولي کي منهن ڏيڻ لاء Terraform ۾ نمونن. ميڪسم ڪوسٽرڪين (ايڪسٽين)

ايندڙ هڪ آهي Terraform validate. اهو نحو جي چڪاس کان ٿورو وڌيڪ ڪم ڪري ٿو - الا، سڀ بریکٹس جوڙيل آهن. هتي ڇا اهم آهي؟ اسان وٽ هڪ تمام پتلي انفراسٽرڪچر آهي. ان ۾ ڪيترائي مختلف فولڊر آھن. ۽ هر هڪ ۾ توهان کي هلائڻ جي ضرورت آهي Terraform validate.

انهي جي مطابق، جاچ کي تيز ڪرڻ لاء، اسان متوازي استعمال ڪندي ڪيترن ئي عملن کي متوازي ۾ هلون ٿا.

متوازي تمام سٺي شيء آهي، ان کي استعمال ڪريو.

پر هر ڀيري Terraform جي شروعات ڪئي وئي آهي، اهو HashiCorp ڏانهن وڃي ٿو ۽ پڇي ٿو، "تازه ترين پلگ ان ڇا آهن؟ ۽ اهو پلگ ان جيڪو مون وٽ ڪيش ۾ آهي - ڇا اهو هڪ آهي يا نه؟ ۽ اهو هر قدم تي سست ٿي ويو.

افراتفري ۽ دستي جي معمولي کي منهن ڏيڻ لاء Terraform ۾ نمونن. ميڪسم ڪوسٽرڪين (ايڪسٽين)

جيڪڏهن Terraform توهان کي ٻڌائي ٿو ته پلگ ان ڪٿي آهن، Terraform چوندو: "ٺيڪ، اهو شايد تازو شيء آهي اتي موجود آهي. مان ڪٿي به نه ويندس، مان توهان جي Terraform ڪوڊ کي صحيح ڪرڻ شروع ڪندس.

افراتفري ۽ دستي جي معمولي کي منهن ڏيڻ لاء Terraform ۾ نمونن. ميڪسم ڪوسٽرڪين (ايڪسٽين)

فولڊر کي ضروري پلگ ان سان ڀرڻ لاءِ، اسان وٽ ھڪڙو سادو Terraform ڪوڊ آھي جنھن کي صرف شروعات ڪرڻ جي ضرورت آھي. هتي، يقينا، توهان کي سڀني مهيا ڪندڙن جي وضاحت ڪرڻ جي ضرورت آهي ته ڪنهن به طريقي سان توهان جي ڪوڊ ۾ حصو وٺن، ٻي صورت ۾ Terraform چوندو: "مون کي ڪنهن به فراهم ڪندڙ کي خبر ناهي، ڇاڪاڻ ته اهو ڪيش ۾ ناهي."

افراتفري ۽ دستي جي معمولي کي منهن ڏيڻ لاء Terraform ۾ نمونن. ميڪسم ڪوسٽرڪين (ايڪسٽين)

ايندڙ هڪ آهي Terraform منصوبو. جيئن مون چيو، ترقي سائيڪل آهي. اسان تبديلين سان ڪوڊ ٺاهيندا آهيون. ۽ پوء توهان کي اهو ڳولڻ جي ضرورت آهي ته انفراسٹرڪچر لاء ڪهڙيون تبديليون رٿيل آهن.

۽ جڏهن انفراسٽرڪچر تمام، تمام وڏو آهي، توهان هڪ ماڊل تبديل ڪري سگهو ٿا، ڪجهه ٽيسٽ ماحول يا ڪجهه مخصوص علائقي کي درست ڪري سگهو ٿا، ۽ ڪجهه پاڙيسري کي ٽوڙي سگهو ٿا. تنهن ڪري، سڄي انفراسٽرڪچر لاءِ هڪ ٽرافارم پلان ٺاهيو وڃي ۽ ڏيکاريو ته ڪهڙيون تبديليون رٿيل آهن.

توهان اهو ڪري سگهو ٿا هوشيار طريقي سان. مثال طور، اسان هڪ Python اسڪرپٽ لکيو آهي جيڪو انحصار کي حل ڪري ٿو. ۽ ان تي منحصر ڪيو ويو آهي ته ڇا تبديل ڪيو ويو آهي: هڪ Terraform ماڊل يا صرف هڪ خاص جزو، اهو سڀني منحصر فولڊر لاء منصوبو ٺاهي ٿو.

Terraform منصوبو درخواست تي ڪيو وڃي. گهٽ ۾ گهٽ اهو آهي جيڪو اسان ڪندا آهيون.

ٽيسٽ، يقينا، هر تبديلي لاءِ ڪرڻ لاءِ سٺو آهن ، هر ڪم لاءِ ، پر منصوبا ڪافي قيمتي شيون آهن. ۽ اسان پل جي درخواست ۾ چوندا آهيون: "مهرباني ڪري مون کي منصوبو ڏيو." روبوٽ شروع ٿئي ٿو. ۽ تبصرن ڏانهن موڪلي ٿو يا سڀني منصوبن کي منسلڪ ڪرڻ لاء جيڪي توهان جي تبديلين کان توقع ڪئي وئي آهي.

منصوبو هڪ بدران قيمتي شيء آهي. اهو وقت وٺندو آهي ڇو ته Terraform Amazon ڏانهن وڃي ٿو ۽ پڇي ٿو، "ڇا اهو مثال اڃا تائين موجود آهي؟ ڇا هن آٽو اسڪيل ۾ بلڪل ساڳيا پيٽرول آهن؟”. ۽ ان کي تيز ڪرڻ لاءِ، توھان استعمال ڪري سگھوٿا ھڪڙو پيٽرولر جھڙوڪ refresh=false. هن جو مطلب آهي ته Terraform S3 رياست کي خراب ڪندو. ۽ يقين ڪندو ته رياست بلڪل ان سان ملندو جيڪو Amazon ۾ آهي.

اهڙو Terraform منصوبو تمام تيز آهي، پر رياست کي لازمي طور تي توهان جي انفراسٽرڪچر سان ملائڻ گهرجي، يعني، ڪٿي، ڪنهن وقت، Terraform ريفريش شروع ٿيڻ گهرجي. Terraform ريفريش بلڪل ائين ڪري ٿو، ته جيئن رياست ان سان مطابقت رکي ٿي جيڪا حقيقي زيربنا ۾ آهي.

۽ مون کي حفاظت بابت چوڻ گهرجي. اهو آهي جتي اهو شروع ٿيڻ گهرجي. جتي توهان Terraform هلائيندا آهيو ۽ Terraform توهان جي انفراسٽرڪچر سان ڪم ڪندو آهي، اتي هڪ خطرو آهي. اھو آھي، توھان لازمي طور تي ڪوڊ ڪري رھيا آھيو. ۽ جيڪڏهن ڇڪڻ جي درخواست ۾ ڪجهه قسم جي بدسلوڪي ڪوڊ شامل آهي، پوء اهو هڪ انفراسٽرڪچر تي عمل ڪري سگهجي ٿو جيڪا تمام گهڻي رسائي آهي. تنهن ڪري، محتاط رهو جتي توهان شروع ڪيو Terraform منصوبو.

افراتفري ۽ دستي جي معمولي کي منهن ڏيڻ لاء Terraform ۾ نمونن. ميڪسم ڪوسٽرڪين (ايڪسٽين)

ايندڙ شيء جنهن بابت آئون ڳالهائڻ چاهيندس صارف ڊيٽا جي جاچ آهي.

صارف جي ڊيٽا ڇا آهي؟ Amazon ۾، جڏهن اسان هڪ مثال ٺاهي سگهون ٿا، اسان مثال مان ڪجهه قسم جو خط موڪلي سگهون ٿا - meta data. جڏهن هڪ مثال شروع ڪيو ويندو آهي، عام طور تي ڪلائوڊ انٽ هميشه انهن مثالن تي موجود هوندو آهي. Cloud init هي خط پڙهي ٿو ۽ چوي ٿو: "ٺيڪ، اڄ مان لوڊ بيلنس ڪندڙ آهيان." ۽ انهن اصولن جي مطابق، هو ڪجهه عملن کي انجام ڏئي ٿو.

افراتفري ۽ دستي جي معمولي کي منهن ڏيڻ لاء Terraform ۾ نمونن. ميڪسم ڪوسٽرڪين (ايڪسٽين)

پر، بدقسمتي سان، جڏهن اسان ڪندا آهيون Terraform پلان ۽ Terraform لاڳو ٿئي ٿو، صارف جي ڊيٽا انگن جي هن slurry وانگر نظر اچن ٿا. اهو آهي، هو صرف توهان کي هڪ هيش موڪلي ٿو. ۽ توهان سڀ ڪجهه ڏسي سگهو ٿا منصوبي ۾ اهو آهي ته ڇا ڪا تبديلي ٿيندي يا هيش ساڳيو رهندو.

۽ جيڪڏهن توهان هن ڏانهن ڌيان نه ڏيو، پوء ڪجهه کٽيل ٽيڪسٽ فائل شايد ايمازون ڏانهن، حقيقي زيربناء ڏانهن وڃو.

افراتفري ۽ دستي جي معمولي کي منهن ڏيڻ لاء Terraform ۾ نمونن. ميڪسم ڪوسٽرڪين (ايڪسٽين)

متبادل طور تي، توھان بيان ڪري سگھوٿا پوري انفراسٽرڪچر جي عمل جي دوران، پر رڳو ٽيمپليٽ. ۽ ڪوڊ ۾، چئو: "مهرباني ڪري هي ٽيمپليٽ مون لاءِ ڏيکاريو." ۽ نتيجي طور، توھان حاصل ڪري سگھوٿا ھڪڙو پرنٽ آئوٽ جيڪو توھان جي ڊيٽا Amazon تي نظر ايندو.

افراتفري ۽ دستي جي معمولي کي منهن ڏيڻ لاء Terraform ۾ نمونن. ميڪسم ڪوسٽرڪين (ايڪسٽين)

ٻيو اختيار آھي ھڪڙو ماڊل استعمال ڪرڻ لاءِ صارف جي ڊيٽا ٺاھيو. توھان ھي ماڊل لاڳو ڪندا. ڊسڪ تي فائل حاصل ڪريو. ان کي حوالو سان ڀيٽيو. ۽ اهڙيءَ طرح، جيڪڏهن ڪجهه جون فيصلو ڪري ٿو ته ٿورڙي يوزر-ڊيٽا کي ٺيڪ ڪرڻ لاءِ، ته پوءِ توهان جا تجربا چوندا: ”ٺيڪ آهي، هتي ۽ اتي ڪي تبديليون آهن- اهو عام آهي.

افراتفري ۽ دستي جي معمولي کي منهن ڏيڻ لاء Terraform ۾ نمونن. ميڪسم ڪوسٽرڪين (ايڪسٽين)

ايندڙ شيءِ جنهن بابت مان ڳالهائڻ چاهيان ٿو اهو آهي Automate Terraform apply.

يقينن، اهو ڪافي خوفناڪ آهي ته Terraform خودڪار طريقي سان لاڳو ٿئي ٿي، ڇاڪاڻ ته ڪير ڄاڻي ٿو ته اتي ڪهڙيون تبديليون آيون آهن ۽ اهي زندگين انفراسٽرڪچر لاءِ ڪيترو نقصانڪار ٿي سگهن ٿيون.

امتحان واري ماحول لاءِ، هي سڀ ٺيڪ آهي. اهو آهي، هڪ نوڪري جيڪا هڪ امتحان ماحول پيدا ڪري ٿي جيڪا سڀني ڊولپرز جي ضرورت آهي. ۽ اهڙو اظهار جيئن ”سڀ ڪجهه مون لاءِ ڪم ڪيو“ ڪو مضحکہ خیز ميم نه آهي، پر اهو ثبوت آهي ته هڪ شخص پريشان ٿي ويو، هڪ اسٽيڪ وڌايو، هن اسٽيڪ تي ڪجهه ٽيسٽ شروع ڪيو. ۽ هن پڪ ڪئي ته اتي سڀ ڪجهه ٺيڪ آهي ۽ چيو: ”ٺيڪ آهي ، ڪوڊ جيڪو مون جاري ڪيو آهي آزمايو ويو آهي.

پيداوار ۾، سينڊ باڪس، ۽ ٻين ماحول ۾ جيڪي وڌيڪ ڪاروبار-نازڪ آهن، اهو محفوظ آهي جزوي طور تي ڪجهه وسيلن کي استعمال ڪرڻ ڇو ته اهو ڪنهن جي مرڻ جو سبب ناهي. اهي آهن: آٽو اسڪيل گروپ، سيڪيورٽي گروپ، ڪردار، رستو 53 ۽ اتي فهرست ڪافي وڏي ٿي سگهي ٿي. پر هڪ نظر رکو ته ڇا ٿي رهيو آهي، خودڪار ايپليڪيشنن جون رپورٽون پڙهو.

جتي اهو استعمال ڪرڻ خطرناڪ يا خوفناڪ آهي، مثال طور، جيڪڏهن اهي ڪجهه مسلسل وسيلا آهن، هڪ ڊيٽابيس مان، پوءِ رپورٽون حاصل ڪريو ته انفراسٽرڪچر جي ڪجهه ٽڪرن ۾ غير لاڳو ٿيل تبديليون آهن. ۽ انجنيئر اڳ ۾ ئي نگراني ٿيل آهي هلندڙ نوڪريون لاڳو ڪرڻ يا ان کي پنهنجي ڪنسول مان ڪرڻ.

Amazon وٽ اهڙي شيءِ آهي جيئن ختم ٿيل تحفظ. ۽ اهو ڪجهه حالتن ۾ انهن تبديلين کان بچائي سگهي ٿو جيڪي توهان لاء گهربل نه آهن. تنهن ڪري Terraform Amazon ڏانهن ويو ۽ چوي ٿو "مون کي هن مثال کي مارڻ جي ضرورت آهي هڪ ٻيو ٺاهڻ لاء". ۽ Amazon چوي ٿو، "معاف ڪجو، اڄ نه. اسان وٽ ختم ٿيل تحفظ آهي.

افراتفري ۽ دستي جي معمولي کي منهن ڏيڻ لاء Terraform ۾ نمونن. ميڪسم ڪوسٽرڪين (ايڪسٽين)

۽ ڪيڪ تي آئسنگ ڪوڊ جي اصلاح آهي. جڏهن اسان Terraform ڪوڊ سان ڪم ڪريون ٿا، اسان کي لازمي طور تي ماڊيول کي تمام وڏي تعداد ۾ پيرا ميٽرز پاس ڪرڻ گهرجن. اهي اهي پيرا ميٽر آهن جيڪي ڪجهه قسم جا وسيلا ٺاهڻ لاءِ ضروري آهن. ۽ ڪوڊ پيرا ميٽرن جي وڏي لسٽن ۾ تبديل ٿي وڃي ٿو جيڪي ماڊل کان ماڊل تائين، ماڊل کان ماڊل تائين، خاص طور تي جيڪڏهن ماڊلز nested آهن.

۽ پڙهڻ ڏاڍو ڏکيو آهي. اهو جائزو وٺڻ تمام ڏکيو آهي. ۽ گهڻو ڪري اهو ظاهر ٿئي ٿو ته ڪجهه پيٽرولن جو جائزو ورتو پيو وڃي ۽ اهي ڪافي نه آهن جيڪي گهربل آهن. ۽ اهو وقت ۽ پئسا خرچ ڪري ٿو ان کي بعد ۾ درست ڪرڻ لاء.

افراتفري ۽ دستي جي معمولي کي منهن ڏيڻ لاء Terraform ۾ نمونن. ميڪسم ڪوسٽرڪين (ايڪسٽين)

تنهن ڪري، مان صلاح ڏيان ٿو ته توهان اهڙي شيء کي هڪ پيچيده پيٽرولر جي طور تي استعمال ڪريو جنهن ۾ قدر جو هڪ خاص وڻ شامل آهي. اھو آھي، توھان کي ھڪڙي قسم جي فولڊر جي ضرورت آھي جتي توھان وٽ سڀئي قدر آھن جيڪي توھان چاھيو ٿا ڪنھن قسم جي ماحول تي.

افراتفري ۽ دستي جي معمولي کي منهن ڏيڻ لاء Terraform ۾ نمونن. ميڪسم ڪوسٽرڪين (ايڪسٽين)

۽ هن ماڊل کي سڏڻ سان، توهان هڪ وڻ حاصل ڪري سگهو ٿا جيڪو هڪ عام ماڊل ۾ پيدا ٿيو آهي، اهو آهي، هڪ عام ماڊل ۾ جيڪو سڄي انفراسٽرڪچر لاءِ ساڳيو ڪم ڪري ٿو.

هن ماڊل ۾، توهان ڪجهه حساب ڪري سگهو ٿا استعمال ڪندي اهڙي تازي خصوصيت کي استعمال ڪندي Terraform جيئن مقامي. ۽ پوء ھڪڙي ٻاھر ۾، ھڪڙي قسم جي پيچيده پيٽرولر کي جاري ڪريو، جنھن ۾ شامل ٿي سگھي ٿو ھيش، صفون وغيره.

افراتفري ۽ دستي جي معمولي کي منهن ڏيڻ لاء Terraform ۾ نمونن. ميڪسم ڪوسٽرڪين (ايڪسٽين)

ان تي، تمام سٺو مليو ته مان ختم ٿي چڪو آهيان. ۽ مان ڪولمبس جي باري ۾ هڪ ڪهاڻي ٻڌائڻ چاهيان ٿو. جڏهن هو هندستان کي دريافت ڪرڻ لاءِ پنهنجي مهم لاءِ پئسا ڳولي رهيو هو (جيئن هن سوچيو تڏهن) ڪنهن به مٿس اعتبار نه ڪيو ۽ نه مڃيو ته اهو ناممڪن آهي. پوءِ چيائين: ”اها پڪ ڪر ته اوندهه نه پوي. سڀني بينڪن، تمام گهڻو امير ۽ شايد هوشيار ماڻهو، ڪنهن نه ڪنهن طريقي سان آنڊا رکڻ جي ڪوشش ڪئي، ۽ اهو هر وقت گر ٿي ويو. پوءِ ڪولمبس انڊا کڻي، ان کي ٿورو دٻايو. خول ٽٽي پيو ۽ آنڊا بيٺا رهيا. چيائون، "ها، اهو تمام آسان آهي!" ۽ ڪولمبس جواب ڏنو: ”ها، اهو تمام سادو آهي. ۽ جڏهن آئون هندستان کوليندس، هرڪو اهو واپاري رستو استعمال ڪندو.

۽ جيڪو مون توهان کي ٻڌايو آهي اهو شايد بلڪل سادي ۽ معمولي شيون آهي. ۽ جڏھن توھان انھن جي باري ۾ ڳولھيو ۽ انھن کي استعمال ڪرڻ شروع ڪيو، اھو شين جي ترتيب ۾ آھي. تنهنڪري استعمال ڪريو. ۽ جيڪڏھن اھي شيون توھان لاءِ بلڪل عام آھن، ته پوءِ گھٽ ۾ گھٽ توھان کي خبر آھي ته انڊيءَ کي ڪيئن وجھو ته جيئن ان جو گر نه ٿئي.

افراتفري ۽ دستي جي معمولي کي منهن ڏيڻ لاء Terraform ۾ نمونن. ميڪسم ڪوسٽرڪين (ايڪسٽين)

اجازت ڏيو:

  • برفاني ٽڪرن کان بچڻ جي ڪوشش ڪريو. ۽ گهٽ برفاني ڦڙا، گهٽ وسيلا توهان کي پنهنجي پوري وڏي انفراسٽرڪچر ۾ ڪا به تبديلي ڪرڻ جي ضرورت پوندي.
  • مسلسل تبديلي. اهو آهي، جڏهن ڪوڊ ۾ ڪجهه تبديليون آيون آهن، توهان کي انهن تبديلين جي مطابق توهان جي انفراسٽرڪچر کي جلد کان جلد آڻڻ جي ضرورت آهي. اهڙي صورتحال نه هجڻ گهرجي جڏهن ڪو ماڻهو ٻن يا ٽن مهينن ۾ Elasticsearch کي ڏسڻ لاءِ اچي، هڪ Terraform پلان ٺاهي، ۽ اتي ڪيتريون ئي تبديليون اچن جن جي هن توقع نه ڪئي هئي. ۽ هر شي کي ترتيب ڏيڻ ۾ تمام گهڻو وقت وٺندو آهي.
  • ٽيسٽ ۽ خودڪار. وڌيڪ ڪوڊ توهان ٽيسٽ ۽ خاصيتن سان ڍڪي ڇڏيو آهي، توهان کي وڌيڪ اعتماد آهي ته توهان سڀ ڪجهه صحيح ڪري رهيا آهيو. ۽ خودڪار ترسيل توهان جي اعتماد کي ڪيترائي ڀيرا وڌائيندو.
  • ٽيسٽ ۽ پيداوار جي ماحول جو ڪوڊ لڳ ڀڳ ساڳيو هجڻ گهرجي. عملي طور، ڇاڪاڻ ته سڀ کان پوء، پيداوار ٿورو مختلف آهي ۽ اتي اڃا به ڪجهه nuances ته امتحان ماحول کان ٻاهر وڃڻ ٿيندو. پر ان جي باوجود، پلس يا مائنس مهيا ڪري سگهجي ٿو.
  • ۽ جيڪڏھن توھان وٽ گھڻو آھي Terraform ڪوڊ ۽ اھو گھڻو وقت وٺي ٿو ھن ڪوڊ کي اپڊيٽ ڪرڻ لاءِ، پوءِ ان کي ريفيڪٽر ڪرڻ ۽ ان کي سٺي شڪل ۾ آڻڻ ۾ ڪڏھن به دير نه ٿيندي.

افراتفري ۽ دستي جي معمولي کي منهن ڏيڻ لاء Terraform ۾ نمونن. ميڪسم ڪوسٽرڪين (ايڪسٽين)

  • ناقابل تبديل انفراسٽرڪچر. شيڊول تي AMI پهچائڻ.
  • روٽ 53 لاءِ جوڙجڪ جڏھن توھان وٽ گھڻا داخل ٿين ٿا ۽ چاھيو ٿا ته اھي ھڪڙي ترتيب واري ترتيب ۾ ھجن.
  • API جي شرح جي حدن جي خلاف وڙھو. اهو آهي جڏهن Amazon چوي ٿو، "اهو ئي آهي، مان وڌيڪ درخواستون قبول نه ٿو ڪري سگهان، مهرباني ڪري انتظار ڪريو." ۽ آفيس جو اڌ انتظار ڪري رهيو آهي جيستائين اهو پنهنجو انفراسٽرڪچر شروع ڪري سگهي.
  • جڳھ جا مثال. Amazon هڪ سستو واقعو نه آهي ۽ اسپاٽ توهان کي تمام گهڻو بچائڻ جي اجازت ڏين ٿا. ۽ اتي توهان ان بابت مڪمل رپورٽ ٻڌائي سگهو ٿا.
  • سيڪيورٽي ۽ IAM ڪردار.
  • گم ٿيل وسيلن جي ڳولا ڪريو، جڏهن توهان وٽ ايمازون ۾ اڻڄاتل اصل جا مثال آهن، اهي پئسا کائيندا آهن. جيتوڻيڪ مثالن جي قيمت $100-150 هر مهيني، اهو هر سال $1 کان وڌيڪ آهي. اهڙن وسيلن کي ڳولڻ هڪ منافعي جو ڪاروبار آهي.
  • ۽ محفوظ مثالون.

افراتفري ۽ دستي جي معمولي کي منهن ڏيڻ لاء Terraform ۾ نمونن. ميڪسم ڪوسٽرڪين (ايڪسٽين)

اهو سڀ ڪجهه منهنجي لاءِ آهي. Terraform تمام ٿڌو آهي، ان کي استعمال ڪريو. تنهنجي مهرباني!

توهان جا سوال

رپورٽ لاءِ مهرباني! توهان وٽ S3 ۾ اسٽيٽ فائل آهي، پر توهان اهو مسئلو ڪيئن حل ڪندا ته ڪيترائي ماڻهو هن اسٽيٽ فائل کي وٺي سگهن ٿا ۽ ترتيب ڏيڻ جي ڪوشش ڪندا؟

پهرين، اسان جلدي ۾ نه آهيون. ٻيو، اتي جھنڊو آھن، جنھن ۾ اسان رپورٽ ڪريون ٿا ته اسان ڪم ڪري رھيا آھيون ڪوڊ جي ڪجھ ٽڪرا تي. اهو آهي، ان حقيقت جي باوجود ته انفراسٽرڪچر تمام وڏو آهي، هن جو مطلب اهو ناهي ته ڪو ماڻهو مسلسل ڪجهه استعمال ڪري رهيو آهي. ۽ جڏهن هڪ فعال مرحلو هو، اهو هڪ مسئلو هو، اسان رياست فائلن کي Git ۾ رکيو. اهو ضروري هو، ٻي صورت ۾ ڪو ماڻهو اسٽيٽ فائل ٺاهي ها، ۽ اسان کي دستي طور تي انهن کي گڏ ڪرڻ گهرجي ته جيئن هر شيء جاري رهي. هاڻي اهڙو ڪو مسئلو ناهي. عام طور تي، Terraform هن مسئلي کي حل ڪيو. ۽ جيڪڏهن ڪا شيءِ مسلسل تبديل ٿي رهي آهي، ته پوءِ توهان لاڪ استعمال ڪري سگهو ٿا جيڪي توهان جي چوڻ کان روڪين ٿا.

ڇا توهان اوپن سورس يا انٽرپرائز استعمال ڪري رهيا آهيو؟

ڪو به ڪاروبار ناهي، اهو آهي، هر شي جيڪا توهان وڃو ۽ مفت ۾ ڊائون لوڊ ڪري سگهو ٿا.

منهنجو نالو Stanislav آهي. مون هڪ ننڍڙو اضافو ڪرڻ چاهيو. توھان Amazon جي خصوصيت بابت ڳالھايو آھي جيڪا توھان کي اجازت ڏئي ٿي ھڪڙي مثال کي ناقابل قابل بڻائي. اهو پڻ Terraform ۾ ئي آهي، زندگي سيڪنڊ بلاڪ ۾، توهان تبديلي تي پابندي، يا تباهي تي پابندي پيش ڪري سگهو ٿا.

وقت ۾ محدود هئي. سٺو نقطو.

مون به ٻه ڳالهيون پڇڻ ٿي چاهيو. پهرين، توهان جاچ بابت ڳالهايو. ڇا توهان ڪنهن ٽيسٽنگ اوزار استعمال ڪيو آهي؟ مون بابت ٻڌو Test Kitchen پلگ ان. شايد ڪا ٻي ڳالهه آهي. ۽ مان مقامي قدرن بابت پڇڻ چاهيان ٿو. اهي بنيادي طور تي انپٽ متغير کان ڪيئن مختلف آهن؟ ۽ مان صرف مقامي قدرن جي ذريعي ئي ڪجهه ڇو نه ٿو ڪري سگهان؟ مون هن موضوع سان معاملو ڪرڻ جي ڪوشش ڪئي، پر ڪنهن به صورت ۾ مون کي اهو معلوم نه ٿيو.

اسان هن هال جي پويان وڌيڪ تفصيل سان ڳالهائي سگهون ٿا. جاچ جا اوزار اسان جي مڪمل خود ٺاهيل آهن. اتي آزمائش لاء ڪجھ به نه آھي. عام طور تي، اهڙا اختيار هوندا آهن جڏهن خودڪار ٽيسٽ انفراسٽرڪچر کي ڪنهن هنڌ بلند ڪن ٿا، چيڪ ڪريو ته اهو ٺيڪ آهي، ۽ پوءِ رپورٽ سان هر شيءِ کي تباهه ڪريو ته توهان جو انفراسٽرڪچر اڃا به سٺي شڪل ۾ آهي. اسان وٽ اهو ناهي ڇو ته ٽيسٽ اسٽيڪ هر روز هلندا آهن. ۽ اهو ڪافي آهي. ۽ جيڪڏهن ڪا شيءِ ڀڃڻ شروع ٿي وڃي ته پوءِ اها اسان کي ڪنهن ٻئي هنڌ چيڪ ڪرڻ کان سواءِ ئي ڀڃڻ شروع ٿي ويندي.

مقامي قدرن جي حوالي سان، اچو ته سامعين کان ٻاهر گفتگو جاري رکون.

سلام! رپورٽ لاءِ مهرباني! ڏاڍو معلوماتي. توهان چيو ته توهان وٽ تمام گهڻو آهي ساڳئي قسم جو ڪوڊ انفراسٽرڪچر کي بيان ڪرڻ لاءِ. ڇا توھان ھن ڪوڊ کي ٺاھڻ تي غور ڪيو آھي؟

عظيم سوال، مهرباني! نقطو اهو آهي ته جڏهن اسان انفراسٽرڪچر کي ڪوڊ طور استعمال ڪندا آهيون، اسان فرض ڪريون ٿا ته اسان ڪوڊ کي ڏسون ٿا ۽ سمجهون ٿا ته هن ڪوڊ جي پويان ڪهڙي قسم جو انفراسٽرڪچر آهي. جيڪڏهن ڪوڊ ٺاهيل آهي، ته پوءِ اسان کي اهو سمجهڻ جي ضرورت آهي ته ڪهڙي قسم جو بنيادي ڍانچو موجود هوندو، اهو سمجهڻ لاءِ ته ڪهڙو ڪوڊ ٺاهيو ويندو. يا اسان ڪوڊ ٺاهي، ان کي انجام ڏيو ۽، حقيقت ۾، اسان ساڳي شيء حاصل ڪندا آهيون. تنهن ڪري، اسان رستي تي وياسين جيڪو اسان لکيو، اسان اهو حاصل ڪيو. ان سان گڏ، جنريٽر ٿوري دير بعد ظاهر ٿيا، جڏهن اسان ٺاهڻ شروع ڪيو. ۽ تبديل ٿيڻ ۾ تمام دير ٿي چڪي هئي.

ڇا توهان jsonnet بابت ٻڌو آهي؟

نمبر

ڏس، هي واقعي سٺي شيء آهي. مان هڪ مخصوص ڪيس ڏسان ٿو جتي توهان ان کي لاڳو ڪري سگهو ٿا ۽ ڊيٽا جي جوڙجڪ ٺاهي سگهو ٿا.

جنريٽر سٺا آهن جڏهن توهان وٽ هجي، جهڙوڪ شيونگ مشين بابت مذاق ۾. يعني پهريون ڀيرو چهرو مختلف هوندو آهي، پر پوءِ هر ڪنهن جو چهرو ساڳيو هوندو آهي. جنريٽر تمام سٺا آهن. پر، بدقسمتي سان، اسان جا منهن ٿورو مختلف آهن. هي مسئلو آهي.

بس ڏس. تنهنجي مهرباني!

منهنجو نالو ميڪسم آهي، مان Sberbank مان آهيان. توهان ٿورو چيو ته توهان Terraform کي پروگرامنگ ٻولي جي هڪ اينالاگ ڏانهن آڻڻ جي ڪوشش ڪئي. ڇا ان کي استعمال ڪرڻ آسان ناهي جوابي؟

اهي تمام مختلف شيون آهن. جوابي وسيلا ٺاهي سگھي ٿو، ۽ پپٽ Amazon ۾ وسيلا ٺاهي سگھي ٿو. پر Terraform سڌو سنئون تيز آهي.

ڇا توهان وٽ صرف Amazon آهي؟

اهو نه آهي ته اسان وٽ صرف Amazon آهي. اسان وٽ لڳ ڀڳ صرف Amazon آهي. پر اهم خصوصيت اها آهي ته Terraform ياد آهي. جوابي ۾، جيڪڏهن توهان چئو: "مون کي 5 مثالون کڻو"، پوء اهو وڌندو، ۽ پوء توهان چئو: "۽ هاڻي مون کي 3 جي ضرورت آهي". ۽ Terraform چوندو: "ٺيڪ آهي، مان 2 کي ماري ڇڏيندس"، ۽ جواب ڏيڻ وارو چوندو: "ٺيڪ، هتي توهان لاء 3 آهي." ڪل 8.

سلام! توهان جي رپورٽ لاء مهرباني! اهو Terraform بابت ٻڌي ڏاڍي دلچسپ هئي. مان صرف حقيقت جي باري ۾ هڪ ننڍڙو تبصرو ڪرڻ چاهيان ٿو ته Terraform اڃا تائين مستحڪم رليز نه آهي، تنهنڪري Terraform سان تمام محتاط ٿي.

رات جي ماني لاء سٺو چمچو. اهو آهي، جيڪڏهن توهان کي هڪ حل جي ضرورت آهي، پوء توهان ڪڏهن ڪڏهن ملتوي ڪندا آهيو جيڪو غير مستحڪم آهي، وغيره، پر اهو ڪم ڪري ٿو ۽ اسان جي مدد ڪئي.

سوال آهي. توهان ريموٽ پس منظر استعمال ڪري رهيا آهيو، توهان S 3 استعمال ڪري رهيا آهيو. توهان سرڪاري پس منظر ڇو نه استعمال ڪري رهيا آهيو؟

سرڪاري؟

Terraform Cloud.

هو ڪڏهن ظاهر ٿيو؟

4 مهينا اڳ.

جيڪڏهن اهو 4 سال اڳ ظاهر ٿئي ها، ته شايد، مان توهان جي سوال جو جواب ڏيان ها.

اتي اڳ ۾ ئي هڪ تعمير ٿيل فنڪشن ۽ لاڪ آهي، ۽ توهان هڪ اسٽيٽ فائل محفوظ ڪري سگهو ٿا. ڪوشش ڪريو. پر مون به نه آزمايو آهي.

اسان هڪ وڏي ٽرين تي آهيون جيڪا تيز رفتار سان هلي رهي آهي. ۽ توهان صرف ڪجهه ڪارن کي ڪڍي ۽ اڇلائي نٿا سگهو.

توهان برفاني ڦڙن جي باري ۾ ڳالهائي رهيا آهيو، توهان شاخ ڇو نه استعمال ڪيو؟ ائين ڇو نه ٿيو؟

اسان وٽ اهڙو طريقو آهي جو سڄو انفراسٽرڪچر هڪ مخزن ۾ آهي. Terraform، Puppet، اهي سڀئي اسڪرپٽ جيڪي ڪنهن نه ڪنهن طرح هن سان لاڳاپيل آهن، اهي سڀئي هڪ مخزن ۾ آهن. انهي طريقي سان اسان پڪ ڪري سگهون ٿا ته واڌارو تبديليون هڪ هڪ ڪري آزمائي رهيا آهن. جيڪڏهن اهو شاخن جو هڪ گروپ هو، ته اهڙي منصوبي کي برقرار رکڻ لاء تقريبا ناممڪن هوندو. ڇهه مهينا گذري ويا آهن، ۽ اهي ايترو ته مختلف ٿي ويا آهن ته اهو صرف هڪ قسم جي سزا آهي. اھو اھو آھي جيڪو مون کي ريفيڪٽر ڪرڻ کان اڳ ڀڄڻ چاھيو.

يعني اهو ڪم نٿو ڪري؟

اهو سڀ ڪجهه ڪم نٿو ڪري.

شاخ ۾، مون فولڊر سلائڊ کي ڪٽي ڇڏيو. اھو آھي، جيڪڏھن توھان ڪندا آھيو ھر ٽيسٽ اسٽيڪ لاءِ، مثال طور، ٽيم A کي پنھنجو پيءُ آھي، ٽيم B کي پنھنجو پيءُ آھي، پوءِ اھو به ڪم نٿو ڪري. اسان هڪ متحد ٽيسٽ ماحوليات ڪوڊ ٺاهيو جيڪو ڪافي لچڪدار هو هر ڪنهن لاءِ. اهو آهي، اسان هڪ ڪوڊ جي خدمت ڪئي.

سلام! منهنجو نالو يورا آهي! رپورٽ لاءِ مهرباني! ماڊلز بابت سوال. توهان چئو ٿا ته توهان ماڊل استعمال ڪري رهيا آهيو. توهان اهو مسئلو ڪيئن حل ڪندا جيڪڏهن هڪ ماڊل ۾ تبديليون ڪيون ويون آهن جيڪي ٻئي شخص جي تبديلي سان مطابقت نه رکن ٿيون؟ ڪنهن طريقي سان ماڊلز کي ورجائڻ يا ٻن ضرورتن کي پورو ڪرڻ لاءِ هڪ پراڊجي آڻڻ جي ڪوشش ڪئي؟

هي وڏو برفاني ڍير جو مسئلو آهي. اھو اھو آھي جيڪو اسان کي متاثر ڪريون ٿا جڏھن ڪجھ معصوم تبديلي انفراسٽرڪچر جو ڪجھ حصو ڀڃي سگھي ٿي. ۽ اهو صرف ڪجهه وقت کان پوء قابل ذڪر ٿيندو.

اهو آهي، اهو اڃا تائين فيصلو نه ڪيو ويو آهي؟

توهان يونيورسل ماڊلز ٺاهيندا آهيو. برفاني ٽڪرن کان پاسو ڪريو. ۽ سڀ ڪجھ ڪم ڪندو. رپورٽ جو ٻيو اڌ حصو ان کان بچڻ جي باري ۾ آهي.

سلام! رپورٽ لاءِ مهرباني! مان واضح ڪرڻ چاهيان ٿو. پردي جي پويان هڪ وڏو ٿلهو هو، جنهن لاءِ مان آيو هوس. ڪٺ پتلي ۽ ڪردار جي ورڇ ڪيئن ضم ٿيل آهن؟

استعمال ڪندڙ ڊيٽا.

اهو آهي، ڇا توهان صرف فائل ڪڍيو ٿا ۽ ڪنهن به طرح ان تي عمل ڪريو؟

يوزر-ڊيٽا هڪ نوٽ آهي، يعني جڏهن اسان هڪ تصوير جو ڪلون ٺاهيندا آهيون، تڏهن ڊيمون اتي اڀري ٿو ۽ اهو معلوم ڪرڻ جي ڪوشش ڪري ٿو ته هو ڪير آهي، هڪ نوٽ پڙهي ٿو ته هو لوڊ بيلنس ڪندڙ آهي.

اهو آهي، ڇا اهو ڪجهه قسم جو الڳ عمل آهي جيڪو ڏنو ويو آهي؟

اسان ان کي ايجاد نه ڪيو. اسان ان کي استعمال ڪندا آهيون.

سلام! مون کي صرف صارف جي ڊيٽا بابت هڪ سوال آهي. توهان چيو ته اتي مسئلا آهن، ته ڪو ماڻهو غلط جاء تي ڪجهه موڪلي سگهي ٿو. ڇا ھڪڙو طريقو آھي صارف جي ڊيٽا کي ذخيرو ڪرڻ جو ھڪڙو ئي گٽ ۾، تنھنڪري اھو ھميشه واضح آھي ته صارف-ڊيٽا ڇا مطلب آھي؟

اسان ٽيمپليٽ مان صارف-ڊيٽا ٺاهيندا آهيون. اهو آهي، متغيرن جو هڪ خاص تعداد اتي موجود آهي. ۽ Terraform حتمي نتيجو پيدا ڪري ٿو. تنهن ڪري، توهان صرف ٽيمپليٽ کي نه ڏسي سگهو ٿا ۽ چوندا آهن ته ڇا ٿئي ٿو، ڇاڪاڻ ته سڀ مسئلا ان حقيقت سان لاڳاپيل آهن ته ڊولپر اهو سوچي ٿو ته هو هن متغير ۾ هڪ تار گذري رهيو آهي، ۽ پوء هڪ صف استعمال ڪيو ويندو آهي. ۽ هو - بينگ ۽ مان - فلاڻي، فلاڻي، پوءِ، ايندڙ قطار، ۽ سڀ ڪجهه ڀڄي ويو. جيڪڏهن اهو هڪ نئون وسيلو آهي ۽ هڪ شخص ان کي بلند ڪري ٿو، ڏسي ٿو ته ڪجهه ڪم نه ڪري رهيو آهي، پوء اهو جلدي حل ڪيو ويو آهي. ۽ جيڪڏهن هي آٽو اسڪيل گروپ اپڊيٽ ڪيو ويو آهي، ته پوءِ ڪجهه نقطي تي آٽو اسڪيل گروپ ۾ واقعن کي تبديل ڪرڻ شروع ڪيو وڃي. ۽ ڪلپ، ڪجهه ڪم نه ڪري رهيو آهي. ڏک ٿئي ٿو.

اهو معلوم ٿئي ٿو ته صرف حل آهي امتحان؟

ها، توهان مسئلو ڏسندا آهيو، توهان اتي ٽيسٽ قدم شامل ڪيو. اهو آهي، پيداوار پڻ آزمائي سگهجي ٿو. ٿي سگهي ٿو ايترو آسان نه هجي، پر توهان پڻ ڪجهه نشان لڳائي سگهو ٿا - چيڪ ڪريو ته يوزر-ڊيٽا هتي نيل ٿيل آهي.

منهنجو نالو تيمور آهي. اهو تمام سٺو آهي ته اتي رپورٽون آهن ته ڪيئن صحيح طريقي سان منظم ڪجي Terraform .

مون اڃا شروع نه ڪيو هو.

مان سمجهان ٿو ته ايندڙ ڪانفرنس ۾، ٿي سگهي ٿو. مون کي هڪ سادي سوال آهي. توهان tfvars استعمال ڪرڻ بجاءِ هڪ الڳ ماڊل ۾ قيمت کي هارڊ ڪوڊنگ ڇو ڪري رهيا آهيو، يعني ڇا هڪ ماڊل قدرن سان tfvars کان بهتر آهي؟

اهو آهي، مون کي هتي لکڻ گهرجي (slide: Production/environment/settings.tf): domain = variable، domain vpcnetwork، vpcnetwork variable ۽ stvars - ساڳي شيء حاصل ڪريو؟

اسان بلڪل ائين ڪندا آهيون. اسان حوالو ڏيون ٿا سيٽنگ ماخذ ماڊل، مثال طور.

حقيقت ۾، هي هڪ اهڙي tfvars آهي. ٽيسٽنگ ماحول ۾ Tfvars تمام آسان آهي. مون وٽ وڏن مثالن لاءِ tfvars آهن، ننڍن لاءِ. ۽ مون ھڪڙي فائل فولڊر ۾ اڇلائي. ۽ حاصل ڪيو جيڪو مون چاهيو. جڏهن اسان انفراسٽرڪچر ڏٺو، اسان چاهيون ٿا ته هر شيء کي ڏسڻ ۽ فوري طور تي سمجهي سگهون. ۽ پوء اهو ظاهر ٿئي ٿو ته توهان کي هتي ڏسڻ جي ضرورت آهي، پوء tfvars ۾ ڏسو.

اهو ظاهر ٿيو ته سڀ ڪجهه هڪ جاء تي هو؟

ها، tfvars آهي جڏهن توهان وٽ هڪ ڪوڊ آهي. ۽ اهو ڪيترن ئي مختلف هنڌن تي مختلف nuances سان استعمال ڪيو ويندو آهي. پوء توهان tfvars اڇليندا ۽ توهان جي nuances حاصل. ۽ اسان بنيادي ڍانچي آهيون ڪوڊ جي طور تي ان جي خالص شڪل ۾. ڏٺو ۽ سمجھيو.

سلام! ڇا توهان انهن حالتن ۾ آيا آهيو جتي بادل فراهم ڪندڙ مداخلت ڪري ٿو جيڪو توهان Terraform سان ڪيو آهي؟ اچو ته اسان ميٽا ڊيٽا کي ايڊٽ ڪريون. اتي ssh ڪنجيون آھن. ۽ گوگل مسلسل ان جي ميٽا ڊيٽا کي سلپ ڪري ٿو، ان جي چابيون اتي. ۽ Terraform هميشه لکي ٿو ته ان ۾ تبديليون آهن. هر رن کان پوء، جيتوڻيڪ ڪجھ به تبديل نه ٿيندو، هو هميشه چوندو آهي ته هو هن فيلڊ کي اپڊيٽ ڪندو.

چابين سان، پر - ها، انفراسٹرڪچر جو حصو اهڙي شيء کان متاثر ٿئي ٿو، يعني Terraform ڪجھ به تبديل نٿو ڪري سگهي. اسان پنهنجي هٿن سان ڪجهه به تبديل نٿا ڪري سگهون. جيستائين اسان ان سان گڏ رهندا آهيون.

اهو آهي، توهان کي اهو ڏسڻ ۾ آيو، پر ڪجهه به نه آيو، هو اهو ڪيئن ڪندو ۽ اهو پاڻ ڪندو؟

بدقسمتي سان ها.

سلام! منهنجو نالو Stanislav Starkov آهي. ٽپال. en گروپ. توهان هڪ ٽيگ تي پيدا ڪرڻ سان مسئلو ڪيئن حل ڪندا آهيو ...، توهان ان کي اندر ڪيئن پاس ڪندا آهيو؟ جيئن مان سمجھان ٿو، يوزر-ڊيٽا ذريعي، ميزبان جو نالو بيان ڪرڻ لاءِ، پپٽ کي اڀاريو؟ ۽ سوال جو ٻيو حصو. توهان هن مسئلي کي SG ۾ ڪيئن حل ڪندا آهيو، يعني جڏهن توهان SG ٺاهيندا آهيو، ساڳئي قسم جا سئو مثال، انهن کي صحيح نالو ڪيئن ڏيو؟

اهي مثال جيڪي اسان لاءِ تمام اهم آهن، اسان انهن کي سهڻي نموني سان نالا ڏينداسين. جن جي ضرورت نه آهي، اتي هڪ پوسٽ اسڪرپٽ آهي ته هي هڪ آٽو اسڪيل گروپ آهي. ۽ نظريي ۾ ان کي نيل ڪري سگهجي ٿو، ۽ هڪ نئون حاصل.

جيئن ته ٽيگ سان مسئلو، اتي ڪو مسئلو ناهي، پر اتي هڪ اهڙي ڪم آهي. ۽ اسان ٽيگ استعمال ڪندا آهيون تمام گهڻو، تمام گهڻو، ڇاڪاڻ ته انفراسٽرڪچر وڏو ۽ مهانگو آهي. ۽ اسان کي ڏسڻ جي ضرورت آهي ته ڪهڙي رقم تي خرچ ڪيو ويو آهي، تنهنڪري ٽيگ اسان کي ترتيب ڏيڻ جي اجازت ڏين ٿا ته ڇا ۽ ڪٿي ويو. ۽، مطابق، هتي ڪجهه ڳولڻ لاء گهڻو پئسو خرچ ڪيو ويو آهي.

ٻيو ڪهڙو سوال هو؟

جڏهن SG هڪ سئو مثال ٺاهي ٿو، ڇا انهن کي ڪنهن به طرح فرق ڪرڻ جي ضرورت آهي؟

نه، نه ڪريو. هر مثال ۾ هڪ ايجنٽ آهي جيڪو مون کي ٻڌائي ٿو ته مون وٽ هڪ مسئلو آهي. جيڪڏهن ايجنٽ رپورٽ ڪري ٿو، ته ايجنٽ هن جي باري ۾ ڄاڻي ٿو ۽، گهٽ ۾ گهٽ، هن جو IP پتو موجود آهي. توهان اڳ ۾ ئي هلائي سگهو ٿا. ٻيو، اسان دريافت لاء قونصل استعمال ڪندا آهيون، جتي ڪوبرنيٽس ناهي. ۽ قونصل پڻ ڏيکاري ٿو مثال جو IP پتو.

اھو آھي، توھان ھدف ڪري رھيا آھيو بلڪل IP، ۽ نه ميزبان جو نالو؟

ھوسٽ جي نالي سان نيويگيٽ ڪرڻ ناممڪن آھي، يعني انھن مان گھڻا آھن. هتي مثال طور سڃاڻپ ڪندڙ آهن - AE وغيره. توهان ان کي ڪٿي ڳولي سگهو ٿا، توهان ان کي ڳولا ۾ اڇلائي سگهو ٿا.

سلام! مون محسوس ڪيو ته Terraform هڪ سٺي شيءِ آهي، جيڪا ڪڪرن سان ٺهيل آهي.

نه رڳو.

اهو سوال آهي جيڪو مون کي دلچسپي رکي ٿو. جيڪڏهن توهان منتقل ڪرڻ جو فيصلو ڪيو، چئو ته، توهان جي سڀني مثالن سان گڏ بيئر ميٽيل ڏانهن؟ اتي ڪو مسئلو ٿيندو؟ يا ڇا توھان اڃا تائين ٻيون پروڊڪٽس استعمال ڪرڻيون آھن، مثال طور، اھو ساڳيو جواب جيڪو ھتي ذڪر ڪيو ويو آھي؟

جوابي ڳالهه ٻي شيءِ بابت آهي. اهو آهي، جواب اڳ ۾ ئي هلندو آهي جڏهن مثال شروع ٿي چڪو آهي. ۽ مثال شروع ٿيڻ کان اڳ Terraform ڪم ڪري ٿو. بيئر ميٽل کي تبديل ڪرڻ نه آهي.

ھاڻي نه، پر ڌنار ايندو ۽ چوندو: ”اچو.

ٻئي بادل کي تبديل ڪرڻ - ها، پر هتي ڪجھ مختلف خصوصيت آهي. توھان کي لکڻ جي ضرورت آھي Terraform ڪوڊ اھڙيءَ طرح جيئن توھان ڪنھن ٻئي بادل ڏانھن گھٽ خونريزي سان تبديل ڪري سگھو.

شروعات ۾، ڪم اهو هو ته اسان جو سڄو انفراسٽرڪچر اجناسٽڪ آهي، يعني ڪو به بادل ٺيڪ هجڻ گهرجي، پر ڪجهه وقت تي ڪاروبار ڇڏي ڏنو ۽ چيو: "ٺيڪ آهي، ايندڙ اين سالن ۾ اسان ڪٿي به نه وينداسين، توهان استعمال ڪري سگهو ٿا خدمتون Amazon ".

Terraform توهان کي فرنٽ-اينڊ نوڪريون ٺاهڻ، PagerDuty کي ترتيب ڏيڻ، ڊيٽا دستاويزن وغيره جي اجازت ڏئي ٿو. ان ۾ تمام گهڻو دم آهي. هو عملي طور سڄي دنيا کي ڪنٽرول ڪري سگهي ٿو.

رپورٽ لاءِ مهرباني! مان پڻ 4 سالن تائين ٽرافارم کي گھمائي رهيو آهيان. ٽرافارم ڏانهن، انفراسٽرڪچر ڏانهن، بياني بيان ڏانهن، اسان کي هڪ اهڙي صورتحال سان منهن ڏيڻو پيو، جتي ڪو ماڻهو هٿ سان ڪجهه ڪري رهيو هو، ۽ توهان هڪ منصوبو ٺاهڻ جي ڪوشش ڪري رهيا هئاسين. ۽ مون کي اتي ڪجهه غلطي ملي. توهان اهڙين مسئلن سان ڪيئن ڊيل ڪندا آهيو؟ توهان گم ٿيل وسيلن کي ڪيئن ڳوليندا آهيو جيڪي ظاهر ڪيا ويا آهن؟

گهڻو ڪري اسان جي هٿن ۽ اکين سان، جيڪڏهن اسان رپورٽ ۾ ڪجهه عجيب ڏسندا آهيون، پوء اسين تجزيو ڪندا آهيون ته اتي ڇا ٿي رهيو آهي، يا اسان صرف ان کي ماريندا آهيون. عام طور تي، ڇڪڻ جون درخواستون هڪ عام شيء آهي.

جيڪڏهن ڪو غلطي آهي، ڇا توهان واپس موٽندا آهيو؟ ڇا توھان ھي ڪرڻ جي ڪوشش ڪئي آھي؟

نه، اهو هڪ شخص جو فيصلو آهي هن وقت جڏهن هو مسئلو ڏسي ٿو.

جو ذريعو: www.habr.com