GitLab CI/CD کے ساتھ تعاون کرنے کے لیے HashiCorp Waypoint کا استعمال کیسے کریں۔

GitLab CI/CD کے ساتھ تعاون کرنے کے لیے HashiCorp Waypoint کا استعمال کیسے کریں۔

HashiCorp نے ایک نیا پروجیکٹ دکھایا ویسے پوائنٹ پر ہاشی کارپ ڈیجیٹل. یہ Kubernetes سے لے کر AWS اور Google Cloud Run تک مختلف کلاؤڈ پلیٹ فارمز کے لیے عمارت، شپنگ، اور ایپلیکیشنز جاری کرنے کی وضاحت کرنے کے لیے HCL پر مبنی فائل کا استعمال کرتا ہے۔ Waypoint کے بارے میں سوچیں جیسا کہ Terraform اور Vagrant آپ کی ایپلیکیشنز کی تعمیر، ترسیل اور ریلیز کے عمل کو بیان کرنے کے لیے ایک ساتھ رکھتے ہیں۔

بالکل درست، HashiCorp نے Waypoint کو اوپن سورس کے طور پر جاری کیا ہے، اور یہ بہت ساری مثالوں کے ساتھ آتا ہے۔ آرکیسٹریٹر کی سطح آپ پر منحصر ہے، Waypoint ایک قابل عمل کے طور پر آتا ہے جسے آپ براہ راست اپنے لیپ ٹاپ پر یا اپنی پسند کے CI/CD آرکیسٹریشن ٹول سے چلا سکتے ہیں۔ ایپلیکیشن کی تعیناتی کا ہدف بھی آپ پر منحصر ہے، کیونکہ Waypoint Kubernetes، Docker، Google Cloud Run، AWS ECS، اور مزید کو سپورٹ کرتا ہے۔

زبردست پڑھنے کے بعد دستاویزات اور سب سے خوبصورت مثال کے طور پر HashiCorp کی طرف سے فراہم کردہ ایپلی کیشنز، ہم نے GitLab CI/CD کے ساتھ Waypoint orchestration پر گہری نظر ڈالنے کا فیصلہ کیا۔ ایسا کرنے کے لیے، ہم نمونے کے ذخیرے سے AWS ECS پر چلنے والی ایک سادہ Node.js ایپلیکیشن لیں گے۔

ریپوزٹری کو کلون کرنے کے بعد، آئیے ایپلیکیشن کی ساخت کو دیکھتے ہیں جو ایک صفحہ دکھاتا ہے:

GitLab CI/CD کے ساتھ تعاون کرنے کے لیے HashiCorp Waypoint کا استعمال کیسے کریں۔

جیسا کہ آپ نے دیکھا ہوگا، اس پروجیکٹ میں کوئی ڈاکر فائل نہیں ہے۔ انہیں مثال میں شامل نہیں کیا گیا ہے کیونکہ ہمیں واقعی ان کی ضرورت نہیں ہے، کیونکہ Waypoint ہمارے لیے ان کا خیال رکھے گا۔ آئیے فائل کو قریب سے دیکھیں waypoint.hclیہ سمجھنے کے لیے کہ یہ کیا کرے گا:

project = "example-nodejs"

app "example-nodejs" {
  labels = {
    "service" = "example-nodejs",
    "env" = "dev"
  }

  build {
    use "pack" {}
    registry {
    use "aws-ecr" {
        region = "us-east-1"
        repository = "waypoint-gitlab"
        tag = "latest"
    }
    }
  }

  deploy {
    use "aws-ecs" {
    region = "us-east-1"
    memory = "512"
    }
  }
}

تعمیراتی مرحلے کے دوران، Waypoint Cloud Native Buildpacks (CNB) پروجیکٹ کی پروگرامنگ لینگویج کا تعین کرنے اور ڈاکر فائل کا استعمال کیے بغیر ڈوکر امیج بنانے کے لیے۔ اصولی طور پر، یہ وہی ٹیکنالوجی ہے جو جزوی طور پر GitLab استعمال کرتی ہے۔ آٹو ڈی او اوپس آٹو بلڈ مرحلہ پر۔ یہ دیکھ کر بہت اچھا لگا کہ CNCF کا CNB صنعت کے صارفین میں زیادہ سے زیادہ اپنایا جا رہا ہے۔

ایک بار تصویر بن جانے کے بعد، Waypoint اسے خود بخود ہماری AWS ECR رجسٹری میں اپ لوڈ کر دے گا تاکہ یہ بھیجنے کے لیے تیار ہو۔ اسمبلی کے اختتام پر، ترسیل کا مرحلہ استعمال ہوتا ہے۔ AWS ECS ایڈ آن ہماری درخواست کو ہمارے AWS اکاؤنٹ میں تعینات کرنے کے لیے۔

میرے لیپ ٹاپ سے یہ آسان ہے۔ میں نے Waypoint میں ڈال دیا جو پہلے ہی میرے AWS اکاؤنٹ میں تصدیق شدہ ہے اور یہ "بس کام کرتا ہے"۔ لیکن اگر میں اپنے لیپ ٹاپ سے آگے جانا چاہتا ہوں تو کیا ہوگا؟ یا ہوسکتا ہے کہ میں اس تعیناتی کو اپنی مجموعی CI/CD پائپ لائن کے حصے کے طور پر خودکار کرنا چاہتا ہوں جہاں میرے موجودہ انٹیگریشن ٹیسٹ، سیکیورٹی ٹیسٹ اور دیگر چلتے ہیں؟ یہ کہانی کا وہ حصہ ہے جہاں GitLab CI/CD آتا ہے!

این بی اگر آپ صرف CI/CD کو لاگو کرنے کی منصوبہ بندی کر رہے ہیں یا پائپ لائنوں کی تعمیر کے لیے بہترین طریقوں کو لاگو کرنا شروع کرنا چاہتے ہیں تو نئے Slurm کورس پر توجہ دیں۔ "گٹلاب سی آئی کی مثال پر CI/CD". یہ اب پری آرڈر کی قیمت پر دستیاب ہے۔

GitLab CI/CD میں وی پوائنٹ

ان سب کو GitLab CI/CD میں ترتیب دینے کے لیے، آئیے دیکھتے ہیں کہ ہمیں اپنی فائل میں کیا ضرورت ہے .gitlab-ci.yml:

  • سب سے پہلے، آپ کو اس کے اندر چلانے کے لیے ایک بیس امیج کی ضرورت ہے۔ Waypoint کسی بھی لینکس ڈسٹری بیوشن پر چلتا ہے، اسے صرف Docker کی ضرورت ہوتی ہے، لہذا ہم ایک عام Docker امیج کے ساتھ چل سکتے ہیں۔
  • اگلا، آپ کو اس تصویر میں Waypoint انسٹال کرنے کی ضرورت ہے۔ مستقبل میں ہم جمع کر سکتے ہیں میٹا بلڈ امیج اور اس عمل کو اپنے لیے کنٹینرائز کریں۔
  • آخر میں ہم Waypoint کمانڈز چلائیں گے۔

اوپر سب کچھ ہے جو ہماری پائپ لائن کو تعیناتی انجام دینے کے لیے درکار اسکرپٹس کو چلانے کے لیے درکار ہوگا، لیکن AWS پر تعینات کرنے کے لیے، ہمیں ایک اور چیز کی ضرورت ہے: ہمیں اپنے AWS اکاؤنٹ میں لاگ ان کرنا چاہیے۔ Waypoint کی تفصیل میں منصوبے ہیں تصدیق اور اجازت کے بارے میں۔ HashiCorp نے اس ہفتے ایک متاثر کن پروجیکٹ بھی جاری کیا۔ حد. لیکن ابھی کے لیے، ہم توثیق اور اجازت خود لے سکتے ہیں اور سنبھال سکتے ہیں۔

AWS پر GitLab CICD کی توثیق کے لیے کئی اختیارات ہیں۔ پہلا آپشن بلٹ ان استعمال کرنا ہے۔ ہاشی کارپ والٹ. اگر آپ کی ٹیم پہلے سے ہی اسناد کے انتظام کے لیے Vault استعمال کر رہی ہے تو یہ ٹھیک ہے۔ ایک اور طریقہ جو کام کرتا ہے اگر آپ کی ٹیم AWS IAM کا استعمال کرتے ہوئے اجازت کا انتظام کرتی ہے تو یہ چیک کرنا ہے کہ ڈیلیوری کے کام اس کے ذریعے شروع کیے گئے ہیں گٹ لیب رنرA جو IAM کے ذریعے تعیناتی شروع کرنے کا مجاز ہے۔ لیکن اگر آپ صرف Waypoint سے واقف ہونا چاہتے ہیں اور اسے تیزی سے کرنا چاہتے ہیں، تو آخری آپشن یہ ہے کہ آپ اپنے AWS API اور خفیہ کیز کو اس میں شامل کریں۔ GitLab CI/CD ماحولیاتی متغیرات AWS_ACCESS_KEY_ID и AWS_SECRET_ACCESS_KEY.

یہ سب ایک ساتھ ڈالنا

ایک بار جب ہم نے تصدیق کا پتہ لگا لیا، ہم شروع کر سکتے ہیں! ہمارا فائنل .gitlab-ci.yml ایسا لگتا ہے:

waypoint:
  image: docker:latest
  stage: build
  services:
    - docker:dind
  # Define environment variables, e.g. `WAYPOINT_VERSION: '0.1.1'`
  variables:
    WAYPOINT_VERSION: ''
    WAYPOINT_SERVER_ADDR: ''
    WAYPOINT_SERVER_TOKEN: ''
    WAYPOINT_SERVER_TLS: '1'
    WAYPOINT_SERVER_TLS_SKIP_VERIFY: '1'
  script:
    - wget -q -O /tmp/waypoint.zip https://releases.hashicorp.com/waypoint/${WAYPOINT_VERSION}/waypoint_${WAYPOINT_VERSION}_linux_amd64.zip
    - unzip -d /usr/local/bin /tmp/waypoint.zip
    - rm -rf /tmp/waypoint*
    - waypoint init
    - waypoint build
    - waypoint deploy
    - waypoint release

آپ دیکھتے ہیں کہ ہم ایک تصویر کے ساتھ شروع کرتے ہیں۔ docker:latest اور Waypoint کے لیے مطلوبہ چند ماحولیاتی متغیرات مرتب کریں۔ باب میں script ہم جدید ترین Waypoint قابل عمل ڈاؤن لوڈ کرتے ہیں اور اسے داخل کرتے ہیں۔ /usr/local/bin. چونکہ ہمارا رنر پہلے ہی AWS میں مجاز ہے، اس لیے ہم صرف دوڑتے ہیں۔ waypoint init, build, deploy и release.

تعمیراتی کام کا آؤٹ پٹ ہمیں اختتامی نقطہ دکھائے گا جہاں ہم نے ایپلیکیشن کو رول کیا تھا:

GitLab CI/CD کے ساتھ تعاون کرنے کے لیے HashiCorp Waypoint کا استعمال کیسے کریں۔

Waypoint میں سے ایک HashiCorp کے متعدد حل، جو GitLab کے ساتھ بہت اچھا کام کرتا ہے۔ مثال کے طور پر، درخواست کی فراہمی کے علاوہ، ہم اس کے ساتھ بنیادی ڈھانچے کو ترتیب دے سکتے ہیں۔ GitLab میں Terraform. SDLC سیکیورٹی کو معیاری بنانے کے لیے، ہم لاگو بھی کر سکتے ہیں۔ والٹ کے ساتھ گٹ لیب CI/CD پائپ لائنز میں رازوں اور ٹوکنز کے انتظام کے لیے، ڈویلپرز اور ایڈمنسٹریٹرز کے لیے ایک مکمل حل فراہم کرتا ہے جو ترقی، جانچ، اور پیداوار کے استعمال کے لیے خفیہ انتظام پر انحصار کرتے ہیں۔

HashiCorp اور GitLab کے تیار کردہ مشترکہ حل کمپنیوں کو مسلسل سپلائی چین اور انفراسٹرکچر مینجمنٹ کو یقینی بنا کر ایپلی کیشنز تیار کرنے کا بہترین طریقہ تلاش کرنے میں مدد کرتے ہیں۔ Waypoint نے درست سمت میں ایک اور قدم اٹھایا ہے اور ہم اس منصوبے کی مزید ترقی کے منتظر ہیں۔ آپ Waypoint کے بارے میں مزید جان سکتے ہیں۔ یہاںیہ بھی دریافت کرنے کے قابل ہے دستاویزات и ترقیاتی منصوبہ پروجیکٹ ہم نے اپنے علم میں اضافہ کیا ہے۔ GitLab CICD دستاویزات. اگر آپ اسے خود آزمانا چاہتے ہیں تو، آپ کام کرنے کی مکمل مثال پر دیکھ سکتے ہیں۔ یہ ذخیرہ.

آپ CI/CD کے اصولوں کو سمجھ سکتے ہیں، Gitlab CI کے ساتھ کام کرنے کی تمام باریکیوں پر عبور حاصل کر سکتے ہیں اور ویڈیو کورس مکمل کر کے بہترین طریقوں کو لاگو کرنا شروع کر سکتے ہیں۔ "گٹلاب سی آئی کی مثال پر CI/CD". ابھی شامل ہوں!

ماخذ: www.habr.com

نیا تبصرہ شامل کریں