أتمتة نشر الكود مع AWS CodeCommit & CodeDeploy
نشرت: 2022-03-25بصفتك مطور ويب ، قد يتضمن عملك العديد من المهام المعقدة مثل أتمتة نشر التعليمات البرمجية لخوادم الإنتاج أو إذا كنت تعمل في مجموعة وتواجه مشكلات أثناء تحميل التعليمات البرمجية الخاصة بك إلى موقع ويب مباشر ، فإن منشور المدونة هذا هو حل للتغلب على كل هذه مسائل.
عند استخدام FTP ، يجب أن تكون قد قمت بالكتابة فوق رمز المطور المشارك الخاص بك ، وهي مشكلة شائعة جدًا وتحدث مع معظمنا. سيوضح لك هذا الدليل أتمتة نشر الكود مع خدمات AWS CodeCommit و CodeDeploy و Pipeline.
لمحة عامة عن التكنولوجيا:
- AWS CodeCommit : سنستخدم CodeCommit للحفاظ على مستودعاتنا (محتوى الويب / ملفات التعليمات البرمجية) التي ستحتفظ بجميع ملفات المشروع وسجلات الالتزام.
- خادم EC2 : سنستخدم EC2 كخادم إنتاج خاص بنا ، وسيحتوي على الموقع المباشر والرمز لزوار موقعك على الويب.
- AWS CodeDeploy : سيحتفظ بالتطبيق لنشر التعليمات البرمجية الخاصة بك إلى خادم EC2. سننشئ أيضًا مجموعة النشر التي ستحتفظ بالاسم / العلامة الخاصة بمثيل EC2 المستهدف حيث نرغب في نشر الكود الخاص بنا.
- خط الأنابيب : سنختار CodeCommit كمصدر لنا و CodeDeploy كمرحلة نشر. لذلك ، كلما تم اكتشاف أي تغييرات في التعليمات البرمجية في CodeCommit ، سيتم تشغيل خط الأنابيب ودفع تغييرات التعليمات البرمجية هذه إلى CodeDeploy (مثيل EC2).
أتمتة نشر الكود: موضحة بالتفصيل :
إنشاء مستخدم IAM و Git لأتمتة نشر الكود
سنحتاج أولاً إلى إنشاء مستخدم IAM ومستخدم Git يقومان بإجراء تغييرات التعليمات البرمجية ونشرها على خادم النشر.
- قم بإنشاء مستخدم IAM
- السماح بالوصول إلى : AWSCodeCommitFullAccess و AWSCodeDeployFullAccess و AWSCodeCommitPowerUser. ستجد هذا الخيار في علامة التبويب "إرفاق السياسات الحالية مباشرةً".
- الآن ، قم بتسجيل الدخول باستخدام مستخدم IAM هذا.
- انقر فوق بيانات اعتماد الأمان من الزاوية اليمنى العليا.
- انقر فوق علامة تبويب بيانات اعتماد AWS CodeCommit .
- ضمن قسم "بيانات اعتماد HTTPS Git لـ AWS CodeCommit" ، انقر فوق الزر " إنشاء بيانات الاعتماد " .
- الآن ، انسخ اسم المستخدم وكلمة المرور في مكان آمن. سيكون هذا هو اسم المستخدم وكلمة المرور الرئيسيين لـ Git لدفع / سحب تغييرات الرمز.
إنشاء مستودع في CodeCommit
الآن ، دعنا ننشئ مستودعًا يحتوي على شفرتك بالضبط.
- انتقل إلى CodeCommit Dashboard من مستخدم IAM.
- في الزاوية اليمنى العليا ، حدد المنطقة التي تريد إنشاء مستودعك فيها.
- انقر فوق إنشاء مستودع ، وأعطه اسمًا ووصفًا ، ثم انقر فوق إنشاء.
- ضمن قسم " استنساخ المستودع " ، سترى عنوان URL للمستودع الخاص بك. احفظه في مكان آمن. سيبدو بالشكل: https://git-codecommit.ap-south-1.amazonaws.com/v1/repos/HarryTest
تحميل ملف مشروعك لأول مرة
- افتح موجه الأوامر الخاص بالنظام المحلي الخاص بك حيث توجد التعليمات البرمجية الأصلية.
- في موجه الأوامر ، انتقل إلى المسار حيث توجد التعليمات البرمجية الخاصة بك.
- الآن ، قم بتشغيل الأوامر التالية لدفع التعليمات البرمجية الخاصة بك إلى مستودع AWS لأول مرة:
بوابة الحرف الأول
git config –local init.defaultBranch main
git config - global init.defaultBranch main
بوابة إضافة. ## سيؤدي هذا إلى تنفيذ جميع ملفات المشروع
git الالتزام - "الالتزام الأولي"
git push https://git-codecommit.ap-south-1.amazonaws.com/v1/repos/HarryTest –all
- قم بإنشاء مثيل EC2 وتثبيت وكيل CodeDeploy
- قم بإنشاء دور مثيل
- افتح وحدة تحكم AWS IAM الخاصة بك.
- انتقل إلى علامة التبويب "الأدوار" >> إنشاء دور.
- ضمن تحديد نوع الكيان الموثوق به ، حدد خدمة AWS . ضمن "اختيار حالة استخدام" ، حدد EC2 . ضمن "تحديد حالة الاستخدام الخاصة بك" ، اختر EC2. اختر التالي: أذونات .
- ابحث عن السياسة المسماة AmazonEC2RoleforAWSCodeDeploy وحددها ، ثم اختر التالي: العلامات .
- اختر التالي: مراجعة. أدخل اسمًا للدور (على سبيل المثال ، EC2InstanceRole ) وانقر على إنشاء .
- قم بإنشاء مثيل EC2
- انتقل إلى وحدة التحكم EC2. انقر فوق تشغيل مثيل.
- اختر Amazon Machine Image (AMI) ، وحدد موقع Amazon Linux 2 AMI (HVM) ، ونوع وحدة تخزين SSD ، ثم اختر تحديد. (تم تصنيف AMI هذا على أنه "المستوى المجاني مؤهل" ويمكن العثور عليه في أعلى القائمة.)
- اختر صفحة نوع المثيل ، واختر نوع t2.micro المؤهل للطبقة المجانية كتكوين الأجهزة للمثيل الخاص بك ، ثم اختر التالي: تكوين تفاصيل المثيل .
- صفحة تكوين تفاصيل المثيل ، قم بما يلي:
- في عدد الحالات ، أدخل 1 .
- في التعيين التلقائي لعنوان IP العام ، اختر تمكين .
- في دور IAM ، اختر دور IAM الذي أنشأته في الإجراء السابق (على سبيل المثال ، EC2InstanceRole ).
- قم بتوسيع التفاصيل المتقدمة ، وفي حقل بيانات المستخدم ، أدخل ما يلي:
#! / بن / باش
yum -y update
yum install- روبي
yum install -y aws-cli
cd / home / ec2-user
wget https://aws-codedeploy-us-east-2.s3.us-east-2.amazonaws.com/latest/install
chmod + x ./install
./install auto
- اترك باقي العناصر في الخطوة 3: تكوين صفحة تفاصيل المثيل بدون تغيير. اختر التالي: إضافة مساحة تخزين .
- اترك الخطوة 4: إضافة صفحة التخزين دون تغيير ، ثم اختر التالي: إضافة علامات.
- اختر إضافة علامة . في المفتاح ، أدخل الاسم ، وفي القيمة ، أدخل MyCodePipelineDemo . اختر التالي: تكوين مجموعة الأمان. لاحقًا ، يمكنك إنشاء تطبيق CodeDeploy الذي ينشر التطبيق النموذجي إلى هذا المثيل. يحدد CodeDeploy مثيلات لنشرها بناءً على العلامات المرفقة بالمثيلات.
- صفحة تكوين مجموعة الأمان ، قم بما يلي:
- بجانب تعيين مجموعة أمان ، حدد إنشاء مجموعة أمان جديدة .
- في صف SSH ، ضمن المصدر ، اختر IP الخاص بي .
- اختر إضافة قاعدة ، اختر HTTP ، ثم ضمن المصدر ، اختر IP الخاص بي
- اختر مراجعة وتشغيل.
- في صفحة بدء مراجعة المثيل ، اختر بدء. عندما يُطلب منك زوج مفاتيح ، حدد " المتابعة بدون زوج مفاتيح" .
- اختر عرض المثيلات لإغلاق صفحة التأكيد والعودة إلى وحدة التحكم.
- يمكنك عرض حالة التشغيل على صفحة المثيلات . عند بدء تشغيل مثيل ، تكون حالته الأولية "معلقة". بعد بدء المثيل ، تتغير حالته إلى "قيد التشغيل" ، ويتلقى اسم DNS عام. (إذا لم يتم عرض عمود Public DNS ، فاختر أيقونة إظهار / إخفاء ، ثم حدد Public DNS .)
- قد يستغرق الأمر بضع دقائق حتى يكون المثيل جاهزًا للاتصال به. قم بعرض المعلومات في العمود عمليات التحقق من الحالة لمعرفة ما إذا كان المثيل قد اجتاز فحوصات الحالة الخاصة به.

قم بإنشاء تطبيق في CodeDeploy
- قم بإنشاء دور خدمة CodeDeploy
- افتح وحدة تحكم IAM على https://console.aws.amazon.com/iam/
- من لوحة معلومات وحدة التحكم ، اختر الأدوار .
- اختر إنشاء دور .
- ضمن تحديد نوع الكيان الموثوق به ، حدد خدمة AWS . ضمن اختر حالة استخدام ، حدد CodeDeploy . ضمن تحديد حالة الاستخدام الخاصة بك ، اختر CodeDeploy. اختر التالي: أذونات. تم إرفاق سياسة AWSCodeDeployRole المُدارة بالفعل بالدور.
- اختر التالي: العلامات ، والتالي: مراجعة.
- أدخل اسمًا للدور (على سبيل المثال ، CodeDeployRole) ، ثم اختر إنشاء دور.
- قم بإنشاء تطبيق في CodeDeploy
- افتح وحدة تحكم CodeDeploy على https://console.aws.amazon.com/codedeploy
- إذا لم تظهر صفحة التطبيقات ، في القائمة ، اختر التطبيقات .
- اختر إنشاء التطبيق .
- في اسم التطبيق ، أدخل MyDemoApplication .
- في Compute Platform ، اختر EC2 / محلي .
- اختر إنشاء تطبيق.
- قم بإنشاء مجموعة نشر في CodeDeploy
- في الصفحة التي تعرض التطبيق الخاص بك ، اختر إنشاء مجموعة نشر .
- في اسم مجموعة النشر ، أدخل MyDemoDeploymentGroup .
- دور داخل الخدمة ، اختر دور الخدمة الذي أنشأته مسبقًا (على سبيل المثال ، CodeDeployRole ).
- ضمن نوع النشر ، اختر في المكان .
- ضمن تكوين البيئة ، اختر مثيلات Amazon EC2 . في حقل المفتاح ، أدخل الاسم . في حقل القيمة ، أدخل الاسم الذي استخدمته لوضع علامة على المثيل (على سبيل المثال ، MyCodePipelineDemo ).
- ضمن تكوين النشر ، اختر CodeDeployDefault.OneAtaTime .
- ضمن Load Balancer ، تأكد من عدم تحديد تمكين موازنة التحميل . لا تحتاج إلى إعداد موازن تحميل أو اختيار مجموعة مستهدفة لهذا المثال.
- قم بتوسيع قسم خيارات متقدمة. ضمن الإنذارات ، إذا تم إدراج أي إنذارات ، اختر تجاهل تكوين التنبيه.
- اختر إنشاء مجموعة النشر.
قم بإنشاء خط أنابيب
- قم بإنشاء خط أنابيب
- قم بتسجيل الدخول إلى وحدة الإدارة في AWS وافتح وحدة التحكم CodePipeline على http://console.aws.amazon.com/codesuite/codepipeline/home
- افتح وحدة تحكم CodePipeline على https://console.aws.amazon.com/codepipeline/
- حدد إنشاء خط أنابيب .
- في الخطوة 1 : حدد إعدادات خط الأنابيب ، في اسم خط الأنابيب ، أدخل MyFirstPipeline .
- في دور الخدمة ، اختر دور الخدمة الجديد للسماح لـ CodePipeline بإنشاء دور خدمة في IAM.
- اترك الإعدادات ضمن الإعدادات المتقدمة في إعداداتها الافتراضية ، ثم حدد التالي.
- في الخطوة 2 : إضافة مرحلة المصدر ، في موفر المصدر ، حدد CodeCommit .
في اسم المستودع ، حدد اسم مستودع CodeCommit الذي قمت بإنشائه في الخطوة 1: إنشاء مستودع CodeCommit. في اسم الفرع ، اختر main ، ثم حدد الخطوة التالية. - بعد تحديد اسم المستودع والفرع ، تعرض رسالة قاعدة Amazon CloudWatch Events التي سيتم إنشاؤها لمسار الأنابيب هذا.
- ضمن خيارات "تغيير الاكتشاف" ، اترك الإعدادات الافتراضية. يسمح هذا لـ CodePipeline باستخدام Amazon CloudWatch Events لاكتشاف التغييرات في مستودع المصدر الخاص بك.
- حدد التالي .
- في الخطوة 3 : إضافة مرحلة الإنشاء ، حدد تخطي مرحلة الإنشاء ، ثم اقبل رسالة التحذير باختيار تخطي مرة أخرى . حدد التالي .
ملاحظة : في هذا البرنامج التعليمي ، تقوم بنشر التعليمات البرمجية التي تتطلب خدمة no-build ، لذا يمكنك تخطي هذه الخطوة. ومع ذلك ، إذا كان يلزم إنشاء التعليمات البرمجية المصدر الخاصة بك قبل نشرها في المثيلات ، فيمكنك تكوين CodeBuild في هذه الخطوة.
- في الخطوة 4 : إضافة مرحلة النشر ، في موفر النشر ، حدد CodeDeploy .
في اسم التطبيق ، حدد MyDemoApplication . في مجموعة النشر ، حدد MyDemoDeploymentGroup ، ثم حدد الخطوة التالية . - في الخطوة 5 : راجع المعلومات ثم حدد إنشاء خط أنابيب .
- يبدأ تشغيل خط الأنابيب بعد إنشائه. يقوم بتنزيل الرمز من مستودع CodeCommit الخاص بك ويقوم بإنشاء نشر CodeDeploy في مثيل EC2 الخاص بك. يمكنك عرض رسائل التقدم و "النجاح" و "الفشل" حيث ينشر نموذج CodePipeline صفحة الويب إلى مثيل Amazon EC2 في نشر CodeDeploy.
أنت جاهز الآن! انتقل إلى Deploy Deployments . سترى سجلات جميع عمليات النشر الناجحة وتلك التي فشلت.
للتحقق من التغييرات على الموقع ، افتح مثيل EC2 الخاص بك ، وابحث عن DNS العام الخاص بك ، والذي سيظهر على النحو التالي: http://ec2-3-108-40-48.ap-south-1.compute.amazonaws.com .
بمجرد تصفحه ، سترى صفحاتك المباشرة.
لقد أكملت بنجاح أتمتة نشر الرمز. يمكنك الآن دفع تغييرات التعليمات البرمجية الجديدة إلى المستودع الخاص بك ونشرها على موقعك تلقائيًا. إذا كنت لا تزال تواجه أي مشاكل ، فلا تتردد في التعليق هنا.