Môi trường máy chủ: CentOS 7.5
# Cài đặt JDK và cấu hình biến môi trường (bước này được bỏ qua)
# Tải xuống Maven từ trang web chính thức của Maven
# Tải lên máy chủ, giải nén và di chuyển
tar zvxf apache-maven-3.8.2-bin.tar.gz
mv apache-maven-3.8.2 /usr/local/
# Cấu hình biến môi trường
vim /etc/profile
Thêm các dòng sau vào file:
MAVEN_HOME=/usr/local/apache-maven-3.8.2
export PATH=$MAVEN_HOME/bin:$PATH
# Áp dụng biến môi trường
source /etc/profile
# Kiểm tra phiên bản Maven
/usr/local/apache-maven-3.8.2/bin/mvn --version
# Thay đổi kho lưu trữ Maven thành Aliyun
cd /usr/local/apache-maven-3.8.2/conf
vim settings.xml
Chèn đoạn mã sau vào khoảng dòng 159:
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
# Cài đặt Jenkins
# Bước 1: Tải gói cài đặt
wget https://pkg.jenkins.io/redhat-stable/jenkins-2.213-1.1.noarch.rpm
# Bước 2: Cài đặt gói
sudo rpm -ivh jenkins-2.213-1.1.noarch.rpm
# Bước 3: Thiết lập cổng cho Jenkins, ở đây tôi đặt là 9080
sudo vi /etc/sysconfig/jenkins
JENKINS_PORT="9080"
# Đường dẫn mặc định: /var/lib/jenkins
# Bước 4: Khởi động Jenkins
sudo systemctl start jenkins
Nếu gặp lỗi, kiểm tra lại đường dẫn Java trong file khởi động:
vi /etc/init.d/jenkins
Truy cập Jenkins thông qua trình duyệt:
http://ip:9080
Lấy mật khẩu đăng nhập ban đầu từ đường dẫn sau:
/var/lib/jenkins/secrets/initialAdminPassword
Nếu gặp vấn đề quyền truy cập, thực hiện lệnh:
sudo chmod 755 -R /var/lib/jenkins/secrets/
Cài đặt các plugin cần thiết trong phần quản lý hệ thống.
Tạo một công việc mới và cấu hình:
- Kết nối đến kho mã nguồn sử dụng Git, bao gồm địa chỉ clone, tài khoản, mật khẩu và nhánh cần xây dựng.
- Cấu hình môi trường xây dựng trước khi bắt đầu.
- Thực thi các lệnh shell tùy chỉnh.
- Cấu hình kích hoạt xây dựng tự động mỗi 10 phút nếu có sự thay đổi trong mã nguồn.
Ví dụ script shell:
# Đường dẫn tới file jar sẽ chạy
appPath="/opt/java/applications/MyApp-1.0-SNAPSHOT.jar"
if [ ! -f "$appPath" ]; then
echo "===File không tồn tại, không thể khởi động!!!=="
else
appPid=$(pgrep -f MyApp-1.0-SNAPSHOT.jar)
if [ -z "$appPid" ]; then
echo "----------------MyApp đang khởi động----------"
nohup java -jar -Xms50m -Xmx100m $appPath > /dev/null 2>&1 &
until [ -n "$(pgrep -f MyApp-1.0-SNAPSHOT.jar)" ]; do sleep 1; done
echo "MyApp đã khởi động thành công với PID $(pgrep -f MyApp-1.0-SNAPSHOT.jar)"
else
echo "----------------MyApp đang chạy, vui lòng dừng trước----------"
fi
fi
Script dừng ứng dụng và cập nhật file jar mới:
# Dừng tiến trình hiện tại
kill -9 $(pgrep -f MyApp-1.0-SNAPSHOT.jar)
echo "===Ứng dụng đã bị dừng!=="
sleep 1
# Xóa file jar cũ
rm -f /opt/java/applications/MyApp-1.0-SNAPSHOT.jar
# Sao chép file jar mới từ Jenkins workspace
cp /var/lib/jenkins/workspace/my-app/target/MyApp-1.0-SNAPSHOT.jar /opt/java/applications/
if [ -f "/opt/java/applications/MyApp-1.0-SNAPSHOT.jar" ]; then
echo "===Cập nhật file jar thành công!=="
# Khởi động lại ứng dụng
nohup java -jar -Xms50m -Xmx100m /opt/java/applications/MyApp-1.0-SNAPSHOT.jar > /dev/null 2>&1 &
else
echo "===Cập nhật file jar thất bại!=="
fi
Cài đặt plugin Git Parameter để lựa chọn nhánh khác nhau khi xây dựng.
Cài đặt Jenkins từ WAR với Java 17
# Cài đặt các gói phụ thuộc
yum install fontconfig
# Thiết lập thư mục lưu trữ Jenkins
export JENKINS_HOME=/usr/local/jenkins/home
# Tạo thư mục log cho Jenkins
mkdir -p /usr/local/jenkins/jenkins-log
# Khởi động Jenkins từ WAR file
nohup java -jar /usr/local/jenkins/jenkins.war --httpPort=9080 > /usr/local/jenkins/jenkins-log/jenkins.log 2>&1 &
# Kiểm tra cổng
lsof -i :9080
# Đổi nguồn cập nhật thành kho lưu trữ ở Tsinghua University
sed -i 's|https://updates.jenkins-ci.org/update-center.json|https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json|g' $JENKINS_HOME/hudson.model.UpdateCenter.xml
# Khởi động lại Jenkins
sudo systemctl restart jenkins
# Lấy mật khẩu đăng nhập ban đầu
cat $JENKINS_HOME/secrets/initialAdminPassword