كيفية استخدام HashiCorp Waypoint للتعاون مع GitLab CI / CD

كيفية استخدام HashiCorp Waypoint للتعاون مع GitLab CI / CD

أظهر HashiCorp مشروعًا جديدًا إحداثية في HashiCorp الرقمية. يستخدم ملفًا يستند إلى HCL لوصف إنشاء التطبيقات وشحنها وإصدارها للعديد من الأنظمة الأساسية السحابية التي تتراوح من Kubernetes إلى AWS و Google Cloud Run. فكر في Waypoint حيث تم تجميع Terraform و Vagrant معًا لوصف عملية إنشاء تطبيقاتك وشحنها وإصدارها.

بشكل صحيح ، أصدرت HashiCorp نقطة الطريق كمصدر مفتوح ، وهي تأتي مع الكثير من الأمثلة. مستوى المنسق متروك لك ، وتأتي نقطة الطريق كملف قابل للتنفيذ يمكنك تشغيله مباشرة على الكمبيوتر المحمول الخاص بك أو من أداة تنسيق CI / CD التي تختارها. هدف نشر التطبيق متروك لك أيضًا ، حيث تدعم Waypoint Kubernetes و Docker و Google Cloud Run و AWS ECS والمزيد.

بعد قراءة رهيبة الوثائق والأكثر أناقة أمثلة التطبيقات المقدمة من HashiCorp ، قررنا إلقاء نظرة فاحصة على تنسيق Waypoint مع GitLab CI / CD. للقيام بذلك ، سنأخذ تطبيق Node.js بسيطًا يعمل على AWS ECS من مستودع العينة.

بعد استنساخ المستودع ، دعنا نلقي نظرة على هيكل التطبيق الذي يعرض صفحة واحدة:

كيفية استخدام HashiCorp Waypoint للتعاون مع GitLab CI / CD

كما لاحظت ، لا يوجد Dockerfile في هذا المشروع. لم تتم إضافتها في المثال لأننا لسنا في حاجة إليها حقًا ، لأن 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 حزم إنشاء السحابة الأصلية (ان بي سي) لتحديد لغة برمجة المشروع وإنشاء صورة Docker بدون استخدام Dockerfile. من حيث المبدأ ، هذه هي نفس التقنية التي يستخدمها GitLab جزئيًا عمليات التطوير التلقائي في خطوة البناء التلقائي. إنه لأمر رائع أن نرى أن CNB الخاص بـ CNCF يكتسب المزيد والمزيد من التبني بين مستخدمي الصناعة.

بمجرد إنشاء الصورة ، ستقوم Waypoint بتحميلها تلقائيًا إلى سجل AWS ECR الخاص بنا بحيث تكون جاهزة للشحن. في نهاية التجميع ، تستخدم خطوة التسليم إضافة AWS ECS لنشر تطبيقنا على حساب AWS الخاص بنا.

من جهاز الكمبيوتر المحمول الخاص بي ، الأمر سهل. لقد وضعت Waypoint الذي تمت مصادقته بالفعل في حساب AWS الخاص بي وهو "يعمل فقط". ولكن ماذا يحدث إذا أردت أن أتجاوز جهاز الكمبيوتر المحمول الخاص بي؟ أو ربما أرغب في أتمتة هذا النشر كجزء من خط أنابيب CI / CD الإجمالي الخاص بي حيث يتم تشغيل اختبارات التكامل الحالية واختبارات الأمان وغيرها؟ هذا هو الجزء من القصة حيث يأتي GitLab CI / CD!

ملحوظة: إذا كنت تخطط فقط لتنفيذ CI / CD أو تريد البدء في تطبيق أفضل الممارسات لبناء خطوط الأنابيب ، فاحرص على الانتباه إلى دورة Slurm الجديدة. "CI / CD على مثال Gitlab CI". إنه متوفر الآن بسعر الطلب المسبق.

إحداثية في GitLab CI / CD

لتنسيق كل هذا في GitLab CI / CD ، دعنا نرى ما نحتاجه في ملفنا .gitlab-ci.yml:

  • بادئ ذي بدء ، أنت بحاجة إلى صورة أساسية للتشغيل بداخلها. تعمل Waypoint على أي توزيعة Linux ، فهي تحتاج فقط إلى Docker ، حتى نتمكن من التشغيل باستخدام صورة Docker عامة.
  • بعد ذلك ، تحتاج إلى تثبيت Waypoint في هذه الصورة. في المستقبل قد نجمع meta build image واستوعب هذه العملية بنفسك.
  • أخيرًا سنقوم بتشغيل أوامر Waypoint

أعلاه هو كل ما سيحتاجه خط الأنابيب الخاص بنا لتشغيل البرامج النصية اللازمة لأداء النشر ، ولكن للنشر إلى AWS ، نحتاج إلى شيء آخر: يجب علينا تسجيل الدخول إلى حساب AWS الخاص بنا. في وصف نقطة الطريق لديها خطط حول المصادقة والترخيص. أطلقت HashiCorp أيضًا مشروعًا مثيرًا للإعجاب هذا الأسبوع حدود. ولكن في الوقت الحالي ، يمكننا فقط التعامل مع المصادقة والتفويض بأنفسنا.

هناك عدة خيارات لمصادقة GitLab CICD على AWS. الخيار الأول هو استخدام المدمج في مخزن HashiCorp. لا بأس إذا كان فريقك يستخدم 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 وقم بتعيين بعض متغيرات البيئة التي تتطلبها نقطة الطريق. في الفصل script نقوم بتنزيل أحدث ملف تنفيذي لـ Waypoint ووضعه فيه /usr/local/bin. نظرًا لأن العداء الخاص بنا مرخص بالفعل في AWS ، فإننا ببساطة نجري waypoint init, build, deploy и release.

سيُظهر لنا ناتج مهمة الإنشاء نقطة النهاية حيث قمنا بتدوير التطبيق:

كيفية استخدام HashiCorp Waypoint للتعاون مع GitLab CI / CD

إحداثية واحدة من العديد من حلول HashiCorp، والتي تعمل بشكل رائع مع GitLab. على سبيل المثال ، بالإضافة إلى تقديم التطبيق ، يمكننا تنسيق البنية التحتية الأساسية باستخدام Terraform في GitLab. لتوحيد أمان SDLC ، يمكننا أيضًا تطبيقه GitLab مع Vault لإدارة الأسرار والرموز في خطوط أنابيب CI / CD ، مما يوفر حلاً كاملاً للمطورين والمسؤولين الذين يعتمدون على الإدارة السرية للتطوير والاختبار واستخدام الإنتاج.

تساعد الحلول المشتركة التي طورتها HashiCorp و GitLab الشركات على إيجاد أفضل طريقة لتطوير التطبيقات من خلال ضمان إدارة متسقة لسلسلة التوريد والبنية التحتية. لقد خطت Waypoint خطوة أخرى في الاتجاه الصحيح ونتطلع إلى مزيد من التطوير للمشروع. يمكنك معرفة المزيد عن Waypoint هناتستحق الاستكشاف الوثائق и خطة التنمية مشروع. لقد أضفنا معرفتنا إلى وثائق GitLab CICD. إذا كنت ترغب في تجربته بنفسك ، يمكنك الاطلاع على مثال العمل الكامل في هذا المستودع.

يمكنك فهم مبادئ CI / CD ، وإتقان جميع التفاصيل الدقيقة للعمل مع Gitlab CI والبدء في تطبيق أفضل الممارسات من خلال إكمال دورة الفيديو "CI / CD على مثال Gitlab CI". نضم الان!

المصدر: www.habr.com

إضافة تعليق