在CentOS上实现Jenkins自动化前,需完成以下基础准备:
sudo yum update -y确保系统软件包为最新版本。sudo yum install -y java-11-openjdk-devel),安装后通过java -version验证是否成功。wget用于下载Jenkins仓库配置(sudo yum install -y wget)。通过以下命令添加Jenkins Red Hat Stable仓库并导入GPG密钥(确保软件包来源可信):
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 使用YUM包管理器安装Jenkins(自动解决依赖):
sudo yum install -y jenkins 启动Jenkins服务并设置开机自启:
sudo systemctl start jenkins sudo systemctl enable jenkins 通过sudo systemctl status jenkins检查服务状态(显示“active (running)”即为成功)。
首次访问Jenkins需输入管理员初始密码,可通过以下命令获取:
sudo cat /var/lib/jenkins/secrets/initialAdminPassword 在浏览器中输入http://<服务器IP>:8080,粘贴初始密码完成解锁。
选择“安装推荐插件”(如Git、Maven、Pipeline等),覆盖常用功能;或进入“Manage Jenkins > Manage Plugins”手动安装所需插件(如Docker、Kubernetes等)。
进入“Manage Jenkins > Global Tool Configuration”,设置工具路径(如JDK、Maven、Git):
/usr/lib/jvm/java-11-openjdk);MAVEN_HOME(如/usr/share/maven);/usr/bin/git)。允许Jenkins端口(默认8080)通过防火墙:
sudo firewall-cmd --permanent --add-port=8080/tcp sudo firewall-cmd --reload 完成初始配置后,创建管理员账户(设置用户名、密码、邮箱),替代默认的“admin”账户。
进入Jenkins主页,点击“New Item”,输入任务名称(如“my-app-ci”),选择任务类型:
选择“Git”,填写仓库URL(如https://github.com/user/repo.git)和分支(如main);若仓库为私有,需添加SSH密钥或账号密码作为凭证。
http://<服务器IP>:8080/github-webhook/);H/5 * * * *表示每5分钟触发一次)。选择“Pipeline script from SCM”,指定SCM类型为“Git”,填写仓库URL和Jenkinsfile路径(如Jenkinsfile,需存放在仓库根目录)。
pipeline { agent any // 使用任意可用节点 stages { stage('Checkout') { steps { git branch: 'main', url: 'https://github.com/user/repo.git' // 拉取代码 } } stage('Build') { steps { sh 'mvn -B clean package' // 使用Maven编译打包 } } stage('Test') { steps { junit '**/target/surefire-reports/*.xml' // 运行单元测试并生成报告 } } stage('Deploy') { steps { sh 'scp target/*.jar user@server:/opt/app/' // 部署到测试服务器 } } } post { always { cleanWs() // 清理工作空间 } } } 保存任务后,点击“Build Now”即可触发首次构建。
在代码仓库(如GitHub、GitLab)中配置Webhook,指向Jenkins服务器的/github-webhook/或/gitlab-webhook/接口,实现代码提交后自动触发构建。
通过Cron语法设置定时任务(如每天凌晨2点构建):
pipeline { triggers { cron('H 2 * * *') // 每天2点触发 } // 其他配置... } 在任务页面点击“Build Now”,手动启动构建(适用于需要人工确认的场景)。
通过Docker添加构建节点(如Linux节点),提升构建效率:
docker run -d --name jenkins-agent -p 50000:50000 jenkins/agent 在Jenkins“Manage Jenkins > Manage Nodes and Clouds”中添加节点,配置Label(如linux),在Pipeline中使用agent { label 'linux' }指定节点。
结合Docker和Kubernetes实现标准化部署:
stage('Build Image') { steps { script { docker.build("myapp:${env.BUILD_ID}") // 构建Docker镜像 } } } stage('Push to Registry') { steps { withCredentials([usernamePassword(credentialsId: 'dockerhub', usernameVariable: 'DOCKER_USER', passwordVariable: 'DOCKER_PASS')]) { docker.withRegistry('https://registry.hub.docker.com', 'dockerhub') { docker.image("myapp:${env.BUILD_ID}").push() // 推送镜像到Docker Hub } } } } stage('Deploy to Kubernetes') { steps { sh 'kubectl set image deployment/myapp myapp=myapp:${env.BUILD_ID}' // 更新Kubernetes Pod镜像 } } 集成SonarQube进行代码质量扫描,阻断问题构建:
stage('Code Scan') { steps { withSonarQubeEnv('sonar-server') { // 配置SonarQube服务器 sh 'mvn sonar:sonar' } } } stage('Quality Gate') { steps { timeout(time: 15, unit: 'MINUTES') { waitForQualityGate abortPipeline: true // 若质量不达标,终止流水线 } } }