Bài viết này hướng dẫn cách triển khai CI/CD đơn giản sử dụng GitLab, Maven và Tomcat chi tiết từng bước.
Xem thêm:
1. Mô Hình Triển Khai
Cấu trúc hệ thống bao gồm:
- 1 GitLab Server: Dùng để lưu trữ mã nguồn và quản lý dự án.
- 1 GitLab Runner: Register runner với GitLab, cài đặt Maven + Tomcat.
2. Tạo Group Và Project Trong GitLab
Bước 1: Tạo Nhóm (Group)
- Đăng nhập vào GitLab với tài khoản admin.
- Truy cập Admin Area (góc trên bên phải) → chọn Groups → nhấn New Group.
- Nhập các thông tin:
- Group name:
DevOps - Visibility Level: Chọn
Private
- Group name:
- Nhấn Create Group để hoàn tất.


Bước 2: Tạo Dự Án Mới
- Truy cập mục Projects → chọn New Project.
- Chọn Create Blank Project.
- Nhập thông tin:
- Project name:
JavaProject - Project URL: Chọn nhóm
DevOpslàm chủ sở hữu. - Visibility Level: Chọn
Private
- Project name:
- Nhấn Create Project để tạo dự án.

3. Tạo Tài Khoản Lập Trình Viên Và Gán Quyền
Bước 1: Tạo Tài Khoản Mới
- Truy cập Admin Area → chọn Users → nhấn New User.
- Nhập thông tin:
- Username:
dev - Email:
dev@devops.com - Password:
devops123
- Username:
- Nhấn Create User để tạo tài khoản.
Bước 2: Thêm User Vào Dự Án
- Truy cập dự án
JavaProject→ vào mục Settings → chọn Members. - Nhấn Invite Member.
- Tìm tài khoản
dev, gán quyền Owner để đảm bảo có thể đẩy code. - Nhấn Invite để thêm user vào dự án.
Bước 3: Tắt Tính Năng Auto DevOps
- Truy cập vào dự án
JavaProject. - Chọn Settings → CI/CD.
- Tìm mục Auto DevOps, nhấn Expand.
- Bỏ chọn mục Default to Auto DevOps pipeline để tắt tính năng này.
4. Khởi Tạo Git Và Push Code Lên GitLab
Bước 1: Clone Source Code Về Máy
Clone source từ GitHub về:
git clone https://github.com/ttnguyenblog/java.git
cd java
rm -rf .git
Bước 2: Khởi Tạo Remote Mới Từ GitLab
git init
git remote add origin https://gitlab-plus.southeastasia.cloudapp.azure.com/devops/javaproject.git
git branch -M main
git add .
git commit -m "first commit"
git pull origin main --rebase
git push origin main
5. Cài Đặt Maven Trên GitLab Runner
Trên máy GitLab Runner (Ubuntu), chạy các lệnh sau để cài Maven:
sudo apt update
sudo apt install maven -y
mvn -version
6. Cài Đặt Tomcat Trên Máy Deploy
Hướng dẫn cài đặt Tomcat: https://ttnguyen.net/trien-khai-ci-cd-java-voi-jenkins-tomcat-maven/#3_Cai_dat_Tomcat_tren_Web_Server
7. Tạo File Pipeline .gitlab-ci.yml
Cấp quyền truy cập:
- Xác định user đang chạy GitLab Runner, ví dụ:
ps -aux | grep gitlab-runner - Mở file
sudoers:sudo visudo - Thêm dòng này vào cuối (giả sử user là
gitlab-runner):gitlab-runner ALL=(ALL) NOPASSWD: /bin/cp
Trong thư mục gốc của project, tạo file .gitlab-ci.yml với nội dung sau:
stages:
- build
- deploy
build_maven:
stage: build
script:
- mvn -f pom.xml clean install
artifacts:
paths:
- $CI_PROJECT_DIR/target/mywebapp-1.0.war
deploy:
stage: deploy
script:
- sudo cp target/mywebapp-1.0.war /opt/tomcat10/webapps/
8. CI/CD Python
Cấp quyền truy cập:
- Xác định user đang chạy GitLab Runner, ví dụ:
ps -aux | grep gitlab-runner - Mở file
sudoers:sudo visudo - Thêm dòng này vào cuối (giả sử user là
gitlab-runner):gitlab-runner ALL=(ALL) NOPASSWD: /bin/cp
Trong thư mục gốc của project, tạo file .gitlab-ci.yml với nội dung sau:
stages:
- Remove Container
- Remove Image
- Build Image
- Deploy Container
Remove Container:
stage: Remove Container
script:
- sudo docker rm web -f || true
Remove Image:
stage: Remove Image
script:
- sudo docker image remove flask:v1 -f || true
Build Image:
stage: Build Image
script:
- sudo docker build -t flask:v1 .
Deploy Container:
stage: Deploy Container
script:
- sudo docker run -dit --name web -p 80:5000 flask:v1
Sau khi hoàn tất các bước trên, bạn đã có một quy trình CI/CD cơ bản: code được push lên GitLab, Runner tự động build bằng Maven và deploy file .war vào thư mục của Tomcat để ứng dụng được chạy.
Bài viết cùng chủ đề:
[CI/CD] Triển khai ứng dụng Java với Jenkins, Ansible và Tomcat
[CI/CD] Hướng dẫn triển khai với Apache, Docker, Jenkins, Ansible
