برنامه نویسی

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

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

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

چرا به جای Cloud یک راه اندازی شخصی را در نظر بگیرید؟

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

آنچه شما برای راه اندازی یکی نیاز دارید

اجزای ضروری یک راه اندازی شخصی

  1. الزامات سخت افزاری
    رایانه‌های شخصی یا لپ‌تاپ: از رم کافی (حداقل 8 گیگابایت)، CPU (4 هسته یا بیشتر)، و فضای ذخیره‌سازی (SSD توصیه می‌شود) اطمینان حاصل کنید.

  2. نرم افزار و ابزار
    ابزار مجازی سازی:
    VirtualBox برای نیازهای مجازی سازی سبک.
    VMware Workstation نرم افزار دیگری برای مدیریت ماشین های مجازی است.

سیستم عامل ها
توزیع های لینوکس مانند سرور اوبونتو، CentOS یا Debian برای خدمات میزبانی.

ابزارهای شبکه و ابزارهای اتصال از راه دور
OpenVPN یا OpenSSH برای دسترسی از راه دور در تنظیمات شخصی شما

  1. ابزارهایی برای تمرین 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 برای مشاهده وب سایت

  1. سرور خود را با این راهنما راه اندازی کنید
  2. دسترسی به سرور: برای دسترسی به سرور خود از SSH استفاده کنید: از آنجایی که در رایانه شما است می توانید مستقیماً به آن دسترسی داشته باشید، اما من به شما توصیه می کنم از ssh استفاده کنید تا یاد بگیرید که چگونه وارد یک محیط ابری واقعی شوید.
ssh user@your-server-ip
وارد حالت تمام صفحه شوید

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

  1. به روز رسانی و نصب بسته های لازم:

به روز رسانی سیستم:

sudo apt update && sudo apt upgrade -y
وارد حالت تمام صفحه شوید

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

Nginx را نصب کنید:

sudo apt install nginx -y
وارد حالت تمام صفحه شوید

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

  1. تأیید نصب 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 اجرا کنید، مانند آنچه که در سرور ابری انجام می‌دادید، با استفاده از سرور اصلی و سرورهای هدف در محلی مانند آنچه در ابر انجام می‌دهید.

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

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

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

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