在 CentOS 上使用 Jenkins 实施持续交付
一 环境准备与安装
java -version。sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.reposudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.keysudo yum install -y jenkinssudo systemctl start jenkins && sudo systemctl enable jenkinssudo cat /var/lib/jenkins/secrets/initialAdminPassword,访问 http://<服务器IP>:8080 完成安装向导。sudo firewall-cmd --permanent --add-port=8080/tcp && sudo firewall-cmd --reload),并按需配置 SELinux 与 Jenkins 认证/授权。二 构建与交付流水线设计
mvn package、pip install -r requirements.txt、make)。三 交付方式一 传统主机与脚本交付
pipeline {
agent any
stages {
stage('Pull Code') {
steps { git url: 'https://gitlab.com/your-repo.git', branch: 'main' }
}
stage('Build') {
steps { sh 'mvn clean package' }
}
stage('Deploy') {
steps {
sh 'scp target/*.war tomcat@your-server:/path/to/tomcat/webapps'
ssh tomcat@your-server 'systemctl restart tomcat'
}
}
}
}
四 交付方式二 容器化交付与 Kubernetes
pipeline {
agent any
environment {
IMAGE = "your-registry/your-app:${env.BUILD_NUMBER}"
K8S_NS = "default"
}
stages {
stage('Checkout') { steps { git url: 'https://github.com/your-repo.git', branch: 'main' } }
stage('Build') { steps { sh 'docker build -t $IMAGE .' } }
stage('Push') {
steps {
withDockerRegistry(credentialsId: 'docker-hub', url: '') {
sh 'docker push $IMAGE'
}
}
}
stage('Deploy to K8S') {
steps {
sh "kubectl set image deployment/my-app container=my-app=$IMAGE -n $K8S_NS"
sh "kubectl rollout status deployment/my-app -n $K8S_NS"
}
}
}
}
五 安全加固与最佳实践