ایجاد اولین خط لوله کامل 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 ارتباط برقرار کنید تا در مقالات آینده من به سرعت بمانید. 😅