Giới thiệu:
Jenkins là một phần mềm mã nguồn mở (open source) phổ biến được sử dụng để triển khai tích hợp liên tục (Continuous Integration - CI) và tự động hóa các quy trình phát triển phần mềm.
Với Jenkins, các thành viên trong nhóm có thể nhanh chóng tích hợp mã nguồn của họ vào một kho mã tập trung, giúp theo dõi việc thực hiện và trạng thái của các bài kiểm tra (Integration tests, Unit tests). Điều này giúp đảm bảo rằng sản phẩm cuối cùng hoạt động ổn định hơn.
Điều kiện cần để cài đặt Jenkins:
- Một máy chủ hoặc VPS với cấu hình tối thiểu: 2 vcore và 2GB RAM.
- Máy chủ hoặc VPS cần được cài đặt Docker. Bạn có thể kiểm tra việc cài đặt Docker bằng lệnh:
docker version
hoặcdocker -v
.
Cài đặt
Chuẩn bị:
- Một máy chủ hoặc VPS với cấu hình tối thiểu: 2 vcore và 4GB RAM và đã mở cổng 8080 (nếu bạn sử dụng Nginx thì không cần mở).
- Hệ điều hành: Ubuntu 20.04 LTS hoặc 22.04 LTS (được khuyên dùng), hoặc các hệ điều hành như CentOS khác.
Bước 1: Tạo mạng (network) trong Docker:
Sử dụng lệnh sau để tạo mạng:
docker network create jenkins
Sau khi tạo thành công:
Sử dụng lệnh sau để kiểm tra xem mạng có được tạo thành công hay không:
docker network ls
Bước 2: Chạy Docker Image Docker-in-Docker (dind):
Để thực thi các lệnh Docker trong Jenkins, bạn cần tải và chạy image Docker docker:dind
:
docker run --name jenkins-docker --rm --detach \
--privileged --network jenkins --network-alias docker \
--env DOCKER_TLS_CERTDIR=/certs \
--volume jenkins-docker-certs:/certs/client \
--volume jenkins-data:/var/jenkins_home \
--publish 2376:2376 \
docker:dind --storage-driver overlay2
Sau khi chạy lệnh, kiểm tra container đang chạy bằng lệnh:
docker ps
Nếu trạng thái không phải là 'exited', container đã chạy thành công.
Bước 3: Tùy chỉnh Image Jenkins:
1. Tạo Dockerfile:
FROM jenkins/jenkins:2.440.2-jdk17
USER root
RUN apt-get update && apt-get install -y lsb-release
RUN curl -fsSLo /usr/share/keyrings/docker-archive-keyring.asc \
https://download.docker.com/linux/debian/gpg
RUN echo "deb [arch=$(dpkg --print-architecture) \
signed-by=/usr/share/keyrings/docker-archive-keyring.asc] \
https://download.docker.com/linux/debian \
$(lsb_release -cs) stable" > /etc/apt/sources.list.d/docker.list
RUN apt-get update && apt-get install -y docker-ce-cli
USER jenkins
RUN jenkins-plugin-cli --plugins "blueocean docker-workflow"
Tạo file với lệnh vi Dockerfile
hoặc nano Dockerfile
.
2. Xây dựng Image mới từ Dockerfile:
Chạy lệnh sau để xây dựng image mới:
docker build -t myjenkins-blueocean:2.440.2-1 .
Kiểm tra xem image đã được xây dựng thành công bằng lệnh:
docker images
Bước 4: Chạy container Jenkins:
Chạy container từ image mà bạn vừa tạo:
docker run --name jenkins-blueocean --restart=on-failure --detach \
--network jenkins --env DOCKER_HOST=tcp://docker:2376 \
--env DOCKER_CERT_PATH=/certs/client --env DOCKER_TLS_VERIFY=1 \
--publish 8080:8080 --publish 50000:50000 \
--volume jenkins-data:/var/jenkins_home \
--volume jenkins-docker-certs:/certs/client:ro \
myjenkins-blueocean:2.440.2-1
Sử dụng lệnh docker ps
để kiểm tra. Nếu bạn thấy hai container đang chạy và không có container nào có trạng thái exited
, bạn đã hoàn thành việc cài đặt server Jenkins.
Bước 5: Lấy mật khẩu khởi tạo:
Sử dụng lệnh sau để lấy mật khẩu khởi tạo (init password):
docker exec jenkins-blueocean cat /var/jenkins_home/secrets/initialAdminPassword
Bước 6: Truy cập vào giao diện web Jenkins:
Mở địa chỉ http://ip:8080
, ví dụ: http://34.142.228.5:8080
, chép mật khẩu từ bước 5 vào ô yêu cầu và nhấn Continue
.
Bước 7: Cài đặt các plugin:
Bạn sẽ được yêu cầu chọn cài đặt các plugin. Chọn tùy chọn mặc định (Install suggested plugins).
Bước 8: Tạo tài khoản quản trị:
Tạo tài khoản admin theo ý bạn và nhấn Save and Continue
.
Bước 9: Cấu hình URL truy cập:
Cấu hình URL truy cập. Bạn có thể để mặc định hoặc cấu hình qua Nginx.
Bước 10: Hoàn tất cài đặt:
Khi hoàn tất, bạn sẽ thấy thông báo Start using Jenkins
. Đây là giao diện chính của Jenkins.
Bước 11: Tạo Job đơn giản:
Chọn Create a job
và chọn Freestyle project
. Tìm đến mục Build step
và chọn Execute shell
. Thử chạy vài lệnh shell như:
echo Hello World
docker version
java --version
Sau đó chọn Save
và Build now
. Nếu bạn thấy dấu tích xanh, chức năng build đã hoạt động tốt.
Đến đây, bạn đã hoàn tất việc dựng một Node Jenkins hoàn chỉnh. Trong bài viết tiếp theo, mình sẽ hướng dẫn cách kết nối Jenkins với GitLab để thiết lập CI/CD.
Chúc bạn thành công!
Tài liệu tham khảo: Jenkins Official Documentation
source: viblo