0

Hướng dẫn Setup Jenkins cho hệ thống Monolith - Bài 3: Cài đặt Jenkins trên máy chủ Linux (Ubuntu/CentOS) sử dụng Docker

1. Tại sao nên cài đặt Jenkins bằng Docker?

Trước đây, người ta thường cài trực tiếp Jenkins (WAR file hoặc package .deb/.rpm) lên hệ điều hành. Tuy nhiên, cách này có nhược điểm lớn: Jenkins sẽ phụ thuộc trực tiếp vào phiên bản Java của hệ thống, khó quản lý các công cụ build đi kèm, và khi muốn nâng cấp hoặc gỡ bỏ rất dễ gây rắc rối.

Việc sử dụng Docker mang lại các lợi ích tuyệt đối:

  • Cô lập hoàn toàn: Jenkins chạy bên trong một Container độc lập, không làm ảnh hưởng đến hệ điều hành gốc của máy chủ.

  • Dễ dàng quản lý và backup: Toàn bộ dữ liệu cấu hình (JENKINS_HOME) được mount ra thư mục bên ngoài máy chủ, việc sao lưu hay di dời server chỉ diễn ra trong vài nốt nhạc.

  • Triển khai nhanh: Chỉ với một lệnh docker run hoặc docker-compose, bạn đã có một môi trường Jenkins hoàn chỉnh.

2. Chuẩn bị trước khi cài đặt trên Linux (Ubuntu/CentOS)

Đảm bảo máy chủ Linux của bạn đã được cài đặt sẵn Docker và Docker Compose. Bạn có thể kiểm tra nhanh bằng lệnh:

Bash

docker --version
docker compose version

3. Các bước cài đặt Jenkins bằng Docker Compose (Khuyên dùng)

Thay vì gõ một câu lệnh docker run dài dằng dặc, việc sử dụng docker-compose.yml giúp quản lý container chuyên nghiệp hơn rất nhiều, cực kỳ phù hợp cho hệ thống Monolith cần độ ổn định cao.

Bước 1: Tạo thư mục chứa cấu hình Jenkins trên máy chủ

Bash

mkdir -p /opt/jenkins && cd /opt/jenkins

Bước 2: Tạo file docker-compose.yml

Tạo file cấu hình bằng trình soạn thảo (ví dụ: nano docker-compose.yml) và dán nội dung sau vào:

YAML

version: '3.8'

services:
  jenkins:
    image: jenkins/jenkins:lts
    container_name: jenkins-master
    restart: unless-stopped
    user: root
    ports:
      - "8080:8080"
      - "50000:50000"
    volumes:
      - jenkins_home:/var/jenkins_home
      - /var/run/docker.sock:/var/run/docker.sock
    environment:
      - JAVA_OPTS=-Djenkins.install.runSetupWizard=true

volumes:
  jenkins_home:
    external: false

  • Điểm lưu ý kỹ thuật:

    • - /var/run/docker.sock:/var/run/docker.sock: Cho phép Jenkins bên trong container có thể giao tiếp với Docker daemon của máy chủ host (giúp Jenkins có khả năng build các Docker image cho ứng dụng Monolith sau này - gọi là mô hình Docker-in-Docker hoặc Docker socket binding).

    • user: root: Giúp Jenkins container có đủ quyền thực thi các lệnh hệ thống khi cần thiết.

Bước 3: Khởi động container Jenkins

Chạy lệnh sau tại thư mục chứa file docker-compose.yml:

Bash

docker compose up -d

Kiểm tra xem container đã chạy mượt mà chưa:

Bash

docker ps

4. Truy cập và lấy mật khẩu khởi tạo lần đầu (Unlock Jenkins)

  1. Mở trình duyệt và truy cập vào địa chỉ: http://<IP_MAY_CHU_LINUX>:8080

  2. Màn hình yêu cầu nhập Administrator password sẽ xuất hiện. Để lấy đoạn mật khẩu này, bạn chạy lệnh sau trên terminal của máy chủ:

    Bash

    docker exec -it jenkins-master cat /var/jenkins_home/secrets/initialAdminPassword
    
    
  3. Copy chuỗi ký tự xuất hiện trên màn hình, dán vào giao diện web để tiếp tục.


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí