ابرآراز | ArazCloud

خودکارسازی استقرار بر روی سرورهای ابری با CI/CD Pipelines

این مستند راهنمایی برای خودکارسازی استقرار بر روی سرورهای ابری با استفاده از CI/CD Pipelines است. در این مستند، از ابزارهایی مانند Git, Jenkins و Docker استفاده خواهیم کرد تا نحوه تنظیم و پیکربندی CI/CD Pipelines را نشان دهیم.

پیش‌نیازها

  • یک سرور ابری با سیستم‌عامل Ubuntu 20.04
  • دسترسی به اینترنت
  • دسترسی sudo به سرور
  • نصب Docker و Jenkins

نصب و پیکربندی Jenkins

مرحله 1: نصب Jenkins

ابتدا باید Jenkins را بر روی سرور خود نصب کنید.

# به‌روزرسانی مخازن و نصب ابزارهای ضروری
sudo apt update
sudo apt install -y openjdk-11-jdk wget gnupg

# افزودن مخزن Jenkins
wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -
sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'

# نصب Jenkins
sudo apt update
sudo apt install -y jenkins

مرحله 2: شروع به کار Jenkins

# شروع سرویس Jenkins و فعال‌سازی آن برای راه‌اندازی خودکار
sudo systemctl start jenkins
sudo systemctl enable jenkins

# دسترسی به رابط کاربری وب Jenkins در پورت 8080

مرحله 3: پیکربندی Jenkins

پس از نصب، می‌توانید به رابط کاربری وب Jenkins در پورت 8080 دسترسی پیدا کنید. برای اولین بار ورود، به رمز عبور اولیه نیاز دارید که می‌توانید آن را از فایل زیر بردارید:

sudo cat /var/lib/jenkins/secrets/initialAdminPassword

نصب و پیکربندی Docker

مرحله 1: نصب Docker

برای نصب Docker، دستورات زیر را اجرا کنید:

# به‌روزرسانی مخازن و نصب Docker
sudo apt update
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"
sudo apt update
sudo apt install -y docker-ce

# افزودن کاربر Jenkins به گروه Docker
sudo usermod -aG docker jenkins

مرحله 2: تنظیم Docker در Jenkins

به رابط کاربری وب Jenkins بروید و پلاگین Docker را نصب کنید. برای این کار به مسیر زیر بروید:

  • Manage Jenkins -> Manage Plugins -> Available

و پلاگین Docker را جستجو و نصب کنید.

ایجاد یک Pipeline در Jenkins

مرحله 1: ایجاد یک پروژه جدید Pipeline

در Jenkins، به مسیر زیر بروید:

  • New Item -> Pipeline

و یک پروژه جدید با نام دلخواه ایجاد کنید.

مرحله 2: پیکربندی Pipeline

در بخش “Pipeline” از تنظیمات پروژه، اسکریپت زیر را وارد کنید:

pipeline {
    agent any

    stages {
        stage('Clone Repository') {
            steps {
                git 'https://github.com/your-repo/your-project.git'
            }
        }

        stage('Build Docker Image') {
            steps {
                script {
                    def app = docker.build("your-image-name:latest")
                }
            }
        }

        stage('Deploy to Server') {
            steps {
                script {
                    docker.withRegistry('https://registry.hub.docker.com', 'docker-hub-credentials') {
                        app.push('latest')
                    }
                }
            }
        }
    }
}

مثال کد برای Jenkinsfile

در پروژه خود یک فایل به نام Jenkinsfile ایجاد کنید و محتویات زیر را در آن قرار دهید:

pipeline {
    agent any

    environment {
        DOCKER_HUB_CREDENTIALS = credentials('docker-hub-credentials')
    }

    stages {
        stage('Clone Repository') {
            steps {
                git 'https://github.com/your-repo/your-project.git'
            }
        }

        stage('Build Docker Image') {
            steps {
                script {
                    def app = docker.build("your-image-name:latest")
                }
            }
        }

        stage('Deploy to Server') {
            steps {
                script {
                    docker.withRegistry('', DOCKER_HUB_CREDENTIALS) {
                        app.push('latest')
                    }
                }
            }
        }
    }
}

مرحله 3: ایجاد Dockerfile در پروژه

در پروژه خود یک فایل به نام Dockerfile ایجاد کنید و محتویات زیر را در آن قرار دهید:

# استفاده از تصویر پایه
FROM ubuntu:20.04

# نصب ابزارهای ضروری
RUN apt-get update && apt-get install -y \
    python3 \
    python3-pip

# کپی فایل‌های پروژه به داخل تصویر
COPY . /app

# تنظیم دایرکتوری کاری
WORKDIR /app

# نصب وابستگی‌ها
RUN pip3 install -r requirements.txt

# اجرای برنامه
CMD ["python3", "app.py"]

نتیجه‌گیری

با این راهنمای مستند، شما می‌توانید یک CI/CD Pipeline کامل را با استفاده از Jenkins و Docker بر روی سرورهای ابری خود پیاده‌سازی کنید. این سیستم به شما کمک می‌کند تا فرآیندهای استقرار به صورت خودکار و قابل اعتماد انجام شوند و کارایی تیم توسعه را افزایش دهید.