/etc/passwd識別并鎖定或移除),設置高強度用戶密碼(包含大小寫字母、數字及特殊字符,長度≥10位);使用chattr +i命令將/etc/passwd、/etc/shadow、/etc/group、/etc/gshadow設為不可修改,防止未經授權的更改。firewall-cmd開放Jenkins默認端口(8080)及代理端口(50000),并重載防火墻規則:sudo firewall-cmd --permanent --add-port=8080/tcp --add-port=50000/tcp
sudo firewall-cmd --reload
system.setProperty("hudson.model.directorybrowser.csp", "")
/etc/sysconfig/jenkins),調整堆內存大?。ū苊忸l繁Full GC):JAVA_OPTS="-Xms3g -Xmx6g -XX:MaxRAM=6g"
或直接通過命令行啟動(臨時生效):nohup /usr/bin/java -Xms3g -Xmx6g -jar /usr/share/jenkins/jenkins.war --httpPort=8080 &
rsync同步配置文件至備用服務器),當Master故障時,備用服務器可快速接管服務。ssh-keygen -t rsa -b 4096),將公鑰添加至GitHub/GitLab的Deploy Keys;在Jenkins“系統管理→憑據”中添加SSH私鑰。Jenkinsfile(置于代碼倉庫根目錄),定義CI/CD流程(以Java項目為例):pipeline {
agent any
stages {
stage('Checkout') {
steps {
git url: 'git@github.com:your-repo/your-project.git', branch: 'master', credentialsId: 'your-ssh-credentials-id'
}
}
stage('Build') {
steps {
sh 'mvn clean package'
}
}
stage('Test') {
steps {
sh 'mvn test'
}
}
stage('Deploy') {
when {
branch 'master' // 僅master分支觸發部署
}
steps {
sh 'mvn deploy'
}
}
}
post {
success {
echo 'Pipeline executed successfully!'
}
failure {
echo 'Pipeline failed!'
}
}
}
stage('Code Quality') {
steps {
withSonarQubeEnv('SonarQube-Server') {
sh 'mvn sonar:sonar'
}
}
}
stage('Push Image') {
steps {
sh 'docker build -t your-harbor-repo/your-image:latest .'
sh 'docker login your-harbor-repo -u admin -p password'
sh 'docker push your-harbor-repo/your-image:latest'
}
}
JENKINS_HOME(默認路徑/var/lib/jenkins),包含配置文件、構建產物、插件等;創建備份目錄/var/backup/jenkins。cron定時任務(每天凌晨2點執行),打包備份JENKINS_HOME:sudo crontab -e
添加以下內容:0 2 * * * tar -czvf /var/backup/jenkins_$(date +\%F).tar.gz /var/lib/jenkins
sudo systemctl stop jenkins
sudo tar -xzvf /var/backup/jenkins_2025-09-30.tar.gz -C /
sudo systemctl start jenkins
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json。