یادگیری DevOps: راه اندازی یک سیستم گردش کار محلی بدون ابر

DevOps به یک عمل ضروری در توسعه نرم افزار مدرن و عملیات فناوری اطلاعات تبدیل شده است و ابر نقش مهمی در فعال کردن اتوماسیون، مقیاس پذیری و همکاری ایفا می کند. با این حال، پلتفرم های ابری اغلب با هزینه های مکرر همراه هستند و به اتصال به اینترنت نیاز دارند، که ممکن است همیشه برای مبتدیان یا علاقه مندان ایده آل نباشد. ایجاد تنظیمات شخصی خود جایگزینی عالی برای یادگیری مفاهیم DevOps به روشی عملی و مقرون به صرفه است.
در این مقاله، ما بررسی خواهیم کرد که چرا یک راهاندازی شخصی ارزشمند است، برای راهاندازی آن به چه چیزی نیاز دارید و چگونه میتوانید تنظیمات تمرین DevOps خود را بدون تکیه بر ابر ایجاد کنید. اصلیترین چیزی که ابر را متفاوت میکند، دسترسی به منابع محاسباتی از طریق اینترنت است، پس چه میشود اگر بتوانید همین کار را در رایانه شخصی خود بدون اشتراک در ارائهدهنده ابر انجام دهید.
چرا به جای Cloud یک راه اندازی شخصی را در نظر بگیرید؟
مزایا:
صرفه جویی در هزینه: بدون هزینه اشتراک ماهانه برای خدمات ابری. می توانید سخت افزار قدیمی را تغییر کاربری دهید.
دسترسی آفلاین: حتی بدون اتصال به اینترنت بیاموزید و آزمایش کنید.
حریم خصوصی و کنترل: مالکیت کامل داده ها و تنظیمات شما.
آموزش عملی: با مدیریت همه چیز به صورت محلی، بینش عمیق تری در مورد زیرساخت، شبکه و مدیریت سیستم به دست آورید.
آنچه شما برای راه اندازی یکی نیاز دارید
اجزای ضروری یک راه اندازی شخصی
-
الزامات سخت افزاری
رایانههای شخصی یا لپتاپ: از رم کافی (حداقل 8 گیگابایت)، CPU (4 هسته یا بیشتر)، و فضای ذخیرهسازی (SSD توصیه میشود) اطمینان حاصل کنید. -
نرم افزار و ابزار
ابزار مجازی سازی:
VirtualBox برای نیازهای مجازی سازی سبک.
VMware Workstation نرم افزار دیگری برای مدیریت ماشین های مجازی است.
سیستم عامل ها
توزیع های لینوکس مانند سرور اوبونتو، CentOS یا Debian برای خدمات میزبانی.
ابزارهای شبکه و ابزارهای اتصال از راه دور
OpenVPN یا OpenSSH برای دسترسی از راه دور در تنظیمات شخصی شما
- ابزارهایی برای تمرین DevOps
کنترل نسخه: Git برای مدیریت کد.
خطوط لوله CI/CD: Jenkins، GitLab CI، یا GitHub Actions.
مدیریت پیکربندی: Ansible، آشپز، یا عروسک.
زیرساخت به عنوان کد (IaC): Terraform برای تامین زیرساخت.
نظارت و ثبت: پشته Prometheus، Grafana و ELK.
بسترهای کانتینری سازی:
داکر برای اجرا و مدیریت کانتینرها.
Kubernetes (K3s یا MicroK8s) برای سازماندهی برنامه های کاربردی کانتینری.
مرحله 1: اهداف خود را مشخص کنید
اول از همه، تعیین کنید که می خواهید با تنظیمات شخصی خود به چه چیزی برسید. اهداف مشترک عبارتند از:
آموزش مدیریت سیستم لینوکس
میزبانی وب سایت یا نرم افزار وب به صورت محلی.
تمرین کانتینرسازی و ارکستراسیون با Docker و Kubernetes.
ساخت و استقرار خطوط لوله CI/CD.
بررسی مفاهیم شبکه
مرحله 2: راه اندازی را تنظیم کنید
راه اندازی در اینجا برای یک نرم افزار وب خواهد بود
سخت افزار را آماده کنید:
ماشینی را انتخاب کنید
از رم (حداقل 8 گیگابایت)، CPU (4 هسته یا بیشتر)، و فضای ذخیره سازی کافی اطمینان حاصل کنید
اگر در ویندوز هستید، مجازی سازی را از بایوس خود فعال کنید
یک Hypervisor مانند VirtualBox نصب کنید.
هر یک از توزیعهای لینوکس را بهعنوان سیستم عامل پایه روی Hypervisor نصب کنید، 2 راه برای این کار وجود دارد.
الف از ابتدا نصب کنید
از یک توزیع پایدار لینوکس از ابتدا مانند سرور اوبونتو یا دبیان استفاده کنید.
SSH را برای دسترسی از راه دور پیکربندی کنید.
ب از طریق osboxes.org نصب کنید، کاری که ما انجام خواهیم داد. تصاویر از پیش تنظیم شده در اینجا یافت می شوند (به شما توصیه می کنم این کار را انجام دهید، زیرا سریعتر است و از آن برای تمرین استفاده خواهید کرد)
منوی کرکره ای تصاویر VM را انتخاب کنید
با کلیک بر روی تصاویر جعبه مجازی در بالا، شما را به صفحه ای با لیستی از سیستم عامل ها هدایت می کند.
به https://www.osboxes.org/ بروید و توزیع لینوکس دلخواه خود را دانلود کنید.
ubuntu را در صفحه جدید انتخاب کنید (توزیع مورد نظر خود را انتخاب کنید).
دانلود تصویر VirtualBox (VDI).
من در این مورد اوبونتو را دانلود می کنم.
خوبی osboxes این است که نصب آن بسیار سریع است
نسخه دلخواه خود را دانلود کنید من در حال دانلود 24.10 Oracular Oriole هستم و سخت افزار من یک نسخه 64 بیتی است (انتخاب کنید چه چیزی با سخت افزار شما مطابقت دارد)
نام کاربری و رمز عبور را در قسمت اطلاعات یادداشت کنید
تصویر سیستم عامل را در یک پوشه ذخیره و استخراج کنید.
در رابط جعبه مجازی، روی new کلیک کنید، سیستم عامل خود را نام ببرید و نوع و نسخه آن را انتخاب کنید.
پوشه جایی است که ماشین های مجازی من در آن ذخیره می شوند، شما می توانید از هر پوشه ای که انتخاب می کنید استفاده کنید.
در مرحله بعد حافظه (RAM-2 یا 4GB) و پردازنده ها را اختصاص دهید (می توانید از 2 استفاده کنید)، که برای ماشین مجازی جدید در دسترس خواهد بود، سپس روی Next کلیک کنید
“Use an virtual disk hard disk file” را انتخاب کنید و به پوشه ای که حاوی تصویر دیسک استخراج شده است بروید. دیسک باید در این مسیر وجود داشته باشد تا دستگاه کار کند.
روی Finish کلیک کنید
ماشین مجازی جدید شما ایجاد شده است.
بر روی سیستم عامل جدید کلیک راست کرده و روی تنظیمات کلیک کنید
میتوانید پردازنده، فضای ذخیرهسازی را که میخواهید به ماشین مجازی اختصاص دهید، بازنشانی کنید.
شبکه
به شبکه بروید
شبکه را روی آداپتور پل شده تنظیم کنید، این به ماشین مجازی کمک می کند تا آدرس IP خود را دریافت کند و همچنین به اینترنت متصل شود.
VM را برای آزمایش راه اندازی کنید، تنظیمات را به دلخواه پیکربندی کنید، و هر چیزی را که برای ماشین های دیگر نیاز دارید نصب کنید، زیرا به عنوان پایه برای ماشین های دیگر عمل می کند، سپس آن را پس از تست خاموش کنید تا کلون ها ایجاد شود.
رمز عبور در بخش اطلاعات وب سایت osboxes است
ابزارهایی که ممکن است برای نصب نیاز داشته باشید:
داکر و کوبرنتس:
بررسی کنید که openssh وجود دارد یا خیر
Docker را برای کانتینرسازی نصب کنید.
Kubernetes (K3s برای خوشه های سبک وزن) را راه اندازی کنید.
Ansible، Jenkins یا GitLab CI برای ساخت و ساز و برنامه های کاربردی.
و بسیاری از نرم افزارهای دیگر مورد نیاز است
ifconfig را تایپ کنید تا آدرس IP را بررسی کنید
اگر 'ifconfig' نصب نشده است، مراحل نصب را دنبال کنید. استفاده کنید
sudo apt install net-tools
ifconfig را دوباره اجرا کنید
من شما را از دیدن آدرس آی پی من مسدود کردم
بررسی کنید که openssh وجود دارد یا خیر
sudo systemctl status ssh
اگر نه، دستورات زیر را برای نصب دنبال کنید:
sudo apt update
بسته سرور OpenSSH را با دستور زیر نصب کنید:
sudo apt install openssh-server
وضعیت سرویس SSH را برای اطمینان از نصب و اجرا بودن آن بررسی کنید:
sudo systemctl status ssh
سرویس SSH را راه اندازی کنید:
sudo systemctl start ssh
سرویس SSH را برای شروع در هنگام بوت فعال کنید:
sudo systemctl enable ssh
وضعیت سرویس SSH را دوباره بررسی کنید تا مطمئن شوید که نصب و اجرا شده است:
sudo systemctl status ssh
اگر همانطور که نشان داده شده کار نکرد، دوباره مراحل بخش ssh را دنبال کنید.
ماشین را خاموش کنید
اگر از دستگاه ویندوز استفاده می کنید، می توانید از mobaxterm برای تست و اتصال VM خود از طریق ssh استفاده کنید.
ماشین های مجازی را شبیه سازی کنید
روی ماشین مجازی تازه ایجاد شده کلیک راست کرده و روی clone کلیک کنید.
اولین کلون را نام ببرید، من نام خود را “ماشین مشتری” می گذارم زیرا این همان چیزی است که قصد دارم به عنوان رایانه شخصی خود استفاده کنم.
اطمینان حاصل کنید که Generate new MAC addresss for all adapters network انتخاب شده است
روی پیوند پیوند شده کلیک کنید (فضا را ذخیره می کند)، سپس finish را انتخاب کنید
فرآیند شبیه سازی را برای سرور اصلی، هدف-سرور1، هدف-سرور2. در پایان چیزی شبیه به آن خواهید داشت.
به یاد داشته باشید: ایجاد آدرس های مک جدید برای همه آداپتورهای شبکه انتخاب شده است
راه اندازی نمونه
Client-machine و target-server1 را راه اندازی کنید.
بیایید نام ماشین های مجازی را از 'osboxes' به یک نام ترجیحی تغییر دهیم. من از 'clientmachine و targetserver1 استفاده می کنم.
sudo nano /etc/hostname
sudo nano /etc/hosts
دستگاه را مجددا راه اندازی کنید و تغییر نام میزبان را مشاهده کنید
ماشین target-server1 را باز کنید و همین مراحل را تکرار کنید، اگر با ssh آشنایی دارید با ssh وارد شوید.
خروجی شما باید به این شکل باشد
دستگاه را راه اندازی مجدد کنید و تغییر نام میزبان را مشاهده کنید.
در مرحله بعد، این راهنمای گام به گام را دنبال کنید تا یک وب سایت HTML اولیه ایجاد کنید، آن را به صورت محلی آزمایش کنید و سپس با Nginx روی سرور خود میزبانی کنید:
اگر با ایجاد سایت اولیه HTML و راه اندازی سرور nginx آشنا هستید، می توانید از این قسمت صرف نظر کنید
یک صفحه html اولیه در مشتری خود ایجاد کنید و آن را آزمایش کنید.
پوشه پروژه را ایجاد کنید:
mkdir my-website
cd my-website
ایجاد فایل HTML: یک فایل index.html در پوشه my-website ایجاد کنید:
Page Title
A website created by me.
مثال از w3schools
وارد کنید firefox index.html
در cli برای مشاهده وب سایت
- سرور خود را با این راهنما راه اندازی کنید
- دسترسی به سرور: برای دسترسی به سرور خود از SSH استفاده کنید: از آنجایی که در رایانه شما است می توانید مستقیماً به آن دسترسی داشته باشید، اما من به شما توصیه می کنم از ssh استفاده کنید تا یاد بگیرید که چگونه وارد یک محیط ابری واقعی شوید.
ssh user@your-server-ip
- به روز رسانی و نصب بسته های لازم:
به روز رسانی سیستم:
sudo apt update && sudo apt upgrade -y
Nginx را نصب کنید:
sudo apt install nginx -y
- تأیید نصب Nginx: شروع Nginx:
sudo systemctl start nginx
بررسی وضعیت:
sudo systemctl status nginx
مرحله 3: وب سایت خود را روی سرور آپلود کنید
کپی فایل ها در سرور:
از scp برای آپلود فایل های وب سایت خود استفاده کنید:
اطمینان حاصل کنید که این دستور را از ماشین کلاینت اجرا می کنید
scp -r my-website/* user@your-server-ip:/home/user/my-website/
انتقال فایل ها به دایرکتوری Nginx:
SSH به سرور منتقل کنید و فایل های وب سایت را به فهرست وب پیش فرض Nginx منتقل کنید:
sudo mv /home/user/my-website/* /var/www/html/
مرحله 4: Nginx را برای وب سایت خود پیکربندی کنید
پیکربندی Nginx را ویرایش کنید:
فایل پیکربندی Nginx را باز کنید:
sudo nano /etc/nginx/sites-available/default
بلوک سرور را به شکل زیر به روز کنید:
server {
listen 80;
server_name your-domain.com;
root /var/www/html;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
تنظیمات Nginx را تست کنید:
sudo nginx -t
بارگیری مجدد Nginx:
sudo systemctl reload nginx
مرحله 5: وب سایت را روی سرور تأیید کنید
آدرس IP سرور خود (به عنوان مثال، http://your-server-ip) را در یک مرورگر باز کنید. شما باید وب سایت خود را ببینید. آی پی سرور شما همان آی پی است که هنگام استفاده از آن نشان داده می شود ifconfig
فرمان
اگر دامنه دارید، با به روز رسانی تنظیمات DNS دامنه، آن را به آدرس IP سرور خود نشان دهید. پس از انتشار DNS، می توانید با استفاده از دامنه خود به سایت دسترسی داشته باشید.
توجه داشته باشید که IP که به این دامنه نگاشت می شود باید در هر مقطع زمانی با IP سرور شما مطابقت داشته باشد، بنابراین مطمئن شوید که هر زمان که راه اندازی مجدد، خاموش شدن سرور یا هر رویدادی که می تواند باعث راه اندازی شود، IP را مطابق با آن به روز کنید. تغییر در ip دستگاه سرور شما
اگر نمیخواهید استرس بهروزرسانی مداوم DNS در مقیاس دسترسی جهانی را تحمل کنید، میتوانید به سادگی در دسترس بودن را محدود کرده و با بهروزرسانی فایلهای میزبان آن در دستگاه مشتری محلی خود را تغییر دهید. /etc/hosts
فایل
sudo nano /etc/hosts
خروجی شما چیزی شبیه این خواهد بود
این سیستم را برای ابزارهای دیگری مانند ansible و kubernetes اجرا کنید، مانند آنچه که در سرور ابری انجام میدادید، با استفاده از سرور اصلی و سرورهای هدف در محلی مانند آنچه در ابر انجام میدهید.