برنامه نویسی

ایجاد اولین خط لوله کامل Jenkins CI/CD

متن

هفته گذشته استفاده از جنکینز را به عنوان اصلی معرفی کردیم ابزار CI (ادغام مداوم).، نحوه استفاده از آن و ما حتی اولین مشاغل خود را با استفاده از پوسته Bash و استفاده از مخازن Github ایجاد کردیم. امروز از جایی که متوقف کردیم ادامه خواهیم داد و اولین خود را ایجاد می کنیم خط لوله CICD جنکینز.

این ایده از روزهای 24 و 25 چالش #90DaysofDevops الهام گرفته شده است.

پروژه استقرار

امروز، ما یک برنامه node.js را در یک نمونه EC2 مستقر خواهیم کرد و یک خط لوله Jenkins CI/CD راه اندازی خواهیم کرد. در مرحله بعد از ادغام GitHub برای اتصال به وظیفه Jenkins و مخزن GitHub خود استفاده خواهیم کرد. در نتیجه، مطمئن شوید که یک ماشین EC2 در حال اجرا با Jenkins و Docker نصب شده است، و همچنین یک مخزن GitHub.

برای ادغام Jenkins با GitHub باید یک کلید SSH عمومی به GitHub ارسال کنیم. را اجرا کنید ssh-keygen فرمان در مورد EC2. شما باید محتوای کلید خصوصی را کپی کنید id_rsa و کلید عمومی id_rsa.pub.

متن

برای مشاهده محتویات id_rsa و id_rsa.pub فایل، از دستور cat استفاده کنید.

cat /home/ubuntu/.ssh/id_rsa
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

cat /home/ubuntu/.ssh/id_rsa.pub
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

راه اندازی SSH برای حساب Github ما

به GitHub بروید Settings ->SSH and GPG Key -> کلیک کنید New SSH Key -> عنوان (نام کلید) و اکنون چسباندن را id_rsa.pub فایل ها contents که شما از نمونه ec2 در کپی کرده بودید key بخش -> در نهایت بر روی آن کلیک کنید Add SSH Key.

متن

نکته: حتما ترک کنید Key type مانند کلید احراز هویت

متن

راه اندازی Job در جنکینز

ایجاد یک پروژه GitHub در جنکینز و چسباندن URL مخزن GitHub.

متن
متن

تنظیم اعتبار در جنکینز

برای افزودن اعتبار خود به سرور جنکینز. ابتدا مطمئن شوید که آن را کپی کرده اید id_rsa فایلی که در مرحله قبل ایجاد کردید.

روی شما Jenkins صفحه خوش آمد گویی، به -> بروید Manage Jenkins بر روی پنجره سمت چپ -> کلیک کنید Credentials -> زیر محدوده فروشگاه‌ها به جنکینز را کلیک کنید (global)

متن

-> حالا روی -> کلیک کنید اعتبارنامه را اضافه کنید و حالا محتوای آن را بچسبانید id_rsa فایل اعتباری که در زیر کپی کرده بودید:

متن

توجه داشته باشید که ورود شما همان نام کاربری است که برای ایجاد نمونه EC2 استفاده می شود.

مورد خود را ذخیره کنید و سپس آن را بسازید.

متن

حال باید موارد مورد نیاز را نصب کنیم dependencies در فایل README.md فهرست شده است.

متن

راه اندازی گروه امنیتی ما در AWS

آخرین دستور URL محل اجرای برنامه را برمی گرداند. به طور پیش فرض، پورت 8000 در ما مجاز نیست AWS EC2 Security Group، بنابراین باید این پورت را به ما اضافه کنیم Security Group بنابراین قبل از اینکه بتوانیم به آن دسترسی داشته باشیم، می توان آن را مجاز کرد.

متن

در حساب AWS خود، به Instance -> Security -> Security groups -> Add rule -> Edit inbound rules، انتخاب کنید Custom TCP، نوع 8000 به عنوان پورت و اضافه کردن 0.0.0.0/0 -> ذخیره کنید

متن

برای دسترسی به برنامه در مرورگر، آدرس IP عمومی نمونه EC2 را کپی کنید و پورت 8000 را به آن اضافه کنید. حالا ادامه دهید و آن را در مرورگر اضافه کنید :8000 پشت برای بندر 8000 جایی که برنامه شما در حال اجرا است

متن

آری!!! 👏 موفقیت، می توانیم صفحه خود را در مرورگر خود مشاهده کنیم.

ایجاد برنامه Docker ما

در مرحله بعد، اجازه دهید اکنون یک برنامه docker از برنامه NodeJS To-Do ایجاد کنیم که هر کسی می تواند از هر کجا به آن دسترسی داشته باشد. با فرض اینکه داکر را نصب کرده ایم، می توانیم کارهای زیر را انجام دهیم:

خود را ایجاد کنید Dockerfile به شرح زیر است:

FROM node:12.2.0-alpine
WORKDIR app
COPY . .
RUN npm install
RUN npm run test
EXPOSE 8000
CMD ["node","app.js"]
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

اجازه دهید تصویر را با استفاده از Dockerfile ایجاد کنیم.

docker build -t todoapp .
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

متن

در مرحله بعد یک ظرف ایجاد می کنیم:

docker run -d --name todoapp_c -p 8000:8000 todoapp:latest
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

متن

بیایید سعی کنیم از طریق آدرس IP عمومی و پورت به برنامه دسترسی پیدا کنیم 8000. باید به راحتی در دسترس باشد.

با افزودن دستورات به جنکینز، اکنون می توانیم خودکار کردن فرآیند.

متن

اکنون، ما می توانیم پروژه خود را بسازیم و قادر خواهیم بود از مرورگر به آن دسترسی داشته باشید، درست مثل قبل

متن

نمای مرورگر

متن

این کار اکنون خودکار است. تنها کاری که باید انجام دهیم این است که یک قلاب وب راه اندازی کنیم که با راه اندازی خودکار فرآیندهای ساخت بعدی ما، به روز رسانی های مخزن را مدیریت کند. به یاد داشته باشید که تمام کانتینرها را نابود کنید، در غیر این صورت ساخت‌ها به دلیل درگیری شکست خواهند خورد.

روی شما Jenkins صفحه اصلی، به -> بروید Manage Plugins -> System Configuration -> Plugins -> در صفحه افزونه ها … را انتخاب کنید Available Plugins -> جستجو برای GitHub Integration افزونه -> انتخاب کنید Install without restart.

در صفحه Github خود ابتدا به تنظیمات Repo بروید -> سپس Webhooks -> را انتخاب کنید Add Webhook -> Payload URL (در خود قرار دهید Jenkins URL) -> content type-> application/json -> در نهایت انتخاب کنید Add webhook.

متن

در صفحه ساخت جنکینز، در زیر Project، به Configure پنجره و تیک GitHub hook trigger choice، اکنون save.

متن

اکنون زمان آن است که Jenkins Job به روز شده خود را آزمایش کنیم. برای انجام این کار، پیش بروید و هر فایلی (مانند فایل را به روز کنید README.md فایل) در آدرس اینترنتی Github شما. هنگامی که تغییر شما در git branch شما در خود انتخاب کردید پیکربندی جنکینز، کار شما راه اندازی می شود بطور خودکار.

با این کار پروژه جنکینز CICD ما به پایان می رسد.

نتیجه

ایجاد خط لوله CI/CD با جنکینز در واقع یک گام مهم به جلو در سفر هر توسعه دهنده ای است. این گواهی بر تکامل مجموعه مهارت شما، و مهمتر از آن، درک شما از اهمیت اتوماسیون در توسعه نرم افزار مدرن است.

رم در یک روز ساخته نشد و همچنین یک خط لوله قوی CI/CD نیز وجود ندارد.

ممکن است لحظات سردرگمی، موانع راه، یا خطاهای غیرمنتظره وجود داشته باشد. اما هر زمین خوردن فرصتی برای یادگیری و رشد است. این بخشی از فرآیند است، و این چیزی است که سفر را واقعاً ارزشمند می کند. و به یاد داشته باشید، جامعه جنکینز همیشه برای کمک کردن آماده است.

با قدرت جنکینز در دستان شما، راه را برای توسعه نرم افزار سریع تر، کارآمدتر و قابل اعتمادتر هموار می کنید.

همه چیز در مورد پذیرش تغییر است، یک ساخت در یک زمان.

همانطور که به کشف جنکینز ادامه می دهید، به یاد داشته باشید که با آن سرگرم شوید. پلاگین های جدید را آزمایش کنید، با ابزارهای مختلف ادغام کنید و به پیش بردن مرزهای آنچه می توانید برسید ادامه دهید.

زیبایی فناوری پتانسیل بی پایان آن است و همین امر در مورد شما به عنوان یک توسعه دهنده نیز صدق می کند.

بنابراین در اینجا به یادگیری مستمر، ادغام مداوم، و استقرار مداوم است! به ساختن ادامه دهید، به نوآوری ادامه دهید و به دنبال کردن کد ادامه دهید. سفر شما در دنیای CI/CD با جنکینز تازه شروع شده است و ما بی صبرانه منتظریم تا ببینیم شما را به کجا می برد.

منتظر مقالات روشنگرتر در مورد جنکینز و سایر موضوعات فناوری هیجان انگیز باشید. تا آن موقع، به کدنویسی ادامه دهید، به گسترش ادامه دهید. بیایید به تغییر جهان ادامه دهیم، یک خط کد در یک زمان! پس از همه به یاد داشته باشید –

تنها ثابت در تکنولوژی تغییر است!!!

لطفاً هر سؤالی دارید بپرسید و من با کمال میل به آنها پاسخ خواهم داد.

تا دفعه بعد. 👋

ممنون از زمانی که برای خواندن این مطلب گذاشته اید! اگر مقاله را دوست دارید، لطفاً (حداکثر 50 بار!) کف بزنید و با من در LinkedIn، Medium، Dev.to و حتی Vocal ارتباط برقرار کنید تا در مقالات آینده من به سرعت بمانید. 😅

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا