CentOS环境下Jenkins自动化配置方法
在CentOS上配置Jenkins自动化前,需完成系统环境初始化及Jenkins安装:
sudo yum update -y
更新系统包,安装Java运行时环境(推荐OpenJDK 8/11,如sudo yum install java-11-openjdk-devel -y
)及wget工具(sudo yum install -y wget
)。sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
sudo yum install jenkins -y
),启动服务并设置开机自启:sudo systemctl start jenkins
sudo systemctl enable jenkins
首次访问Jenkins需获取初始管理员密码(路径:/var/lib/jenkins/secrets/initialAdminPassword
),通过浏览器访问http://<服务器IP>:8080
完成解锁。后续需完成以下安全设置:
通过“Manage Jenkins”→“Manage Plugins”安装以下核心插件,支撑自动化流程:
在Jenkins首页点击“New Item”,选择任务类型:
Jenkinsfile
并纳入版本控制):pipeline {
agent any
stages {
stage('Checkout') {
steps {
git branch: 'main', url: 'https://github.com/your-repo/project.git'
}
}
stage('Build') {
steps {
sh 'mvn clean package'
}
}
stage('Test') {
steps {
sh 'mvn test'
}
}
stage('Deploy') {
steps {
sshagent(['remote-server-credential']) {
sh 'ssh user@remote-server "rm -rf /deploy/* && scp target/*.jar user@remote-server:/deploy/"'
}
}
}
}
post {
always {
echo 'Cleaning up workspace...'
cleanWs()
}
failure {
mail to: 'dev-team@example.com', subject: 'Build Failed', body: 'Check Jenkins logs for details.'
}
}
}
实现“代码提交即构建”的核心配置:
http://<Jenkins服务器IP>:8080/github-webhook/
),选择“Just the push event”,当代码推送时自动触发Jenkins任务;H/5 * * * *
表示每5分钟构建一次,0 2 * * *
表示每天凌晨2点构建)。通过Docker简化Jenkins部署与管理,创建包含必要插件的自定义镜像:
FROM jenkins/jenkins:lts
# 安装常用插件
RUN /usr/local/bin/install-plugins.sh git maven pipeline ssh-agent
# 复制自定义Jenkins配置
COPY jenkins.xml /var/jenkins_home/config.xml
# 暴露端口
EXPOSE 8080 50000
构建并运行容器:
docker build -t my-jenkins .
docker run -d --name jenkins -p 8080:8080 -p 50000:50000 -v jenkins_home:/var/jenkins_home my-jenkins
将重复逻辑封装为函数,提高脚本复用性:
def buildProject(String module) {
echo "Building module: ${module}"
sh "mvn clean package -Dmodule=${module}"
}
pipeline {
agent any
stages {
stage('Build Modules') {
parallel {
stage('Module1') { steps { script { buildProject('module1') } } }
stage('Module2') { steps { script { buildProject('module2') } } }
}
}
}
}
/var/lib/jenkins
目录(含任务配置、构建日志)及Jenkinsfile
;JAVA_OPTS="-Xmx2048m -Xms1024m"
),避免因资源不足导致构建失败。