搭建 Jenkins 自动化服务器
一 环境准备与安装
sudo apt update && sudo apt install -y openjdk-11-jdkwget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -
echo "deb https://pkg.jenkins.io/debian-stable binary/" | sudo tee /etc/apt/sources.list.d/jenkins.list > /dev/null
sudo apt update && sudo apt install -y jenkins
sudo systemctl start jenkins && sudo systemctl enable jenkins
sudo yum install -y java-11-openjdk-develsudo 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 -y jenkins
sudo systemctl start jenkins && sudo systemctl enable jenkins
sudo systemctl status jenkins、java -version、ss -tlnp | grep 8080(默认监听 8080 端口)。二 反向代理与域名访问
sudo a2enmod proxy proxy_http<VirtualHost *:80>
ServerName jenkins.example.com
ProxyRequests Off
ProxyPreserveHost On
AllowEncodedSlashes NoDecode
<Proxy http://localhost:8080/*>
Require all granted
</Proxy>
ProxyPass / http://localhost:8080/ nocanon
ProxyPassReverse / http://localhost:8080/
</VirtualHost>
sudo a2ensite jenkins && sudo systemctl restart apache2 && sudo systemctl restart jenkinsserver {
listen 80;
server_name jenkins.example.com;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
sudo ufw allow 80,443,8080/tcpsudo firewall-cmd --permanent --add-service=http --add-service=https && sudo firewall-cmd --reload三 初始化与安全配置
sudo cat /var/lib/jenkins/secrets/initialAdminPasswordsudo cat /var/lib/jenkins/secrets/initialAdminPassword四 创建第一个任务与流水线
mvn clean package 或 ./gradlew build。pipeline {
agent any
tools {
maven 'Maven-3.8' // 需在 Global Tool Configuration 中预先配置
jdk 'JDK-11'
}
stages {
stage('Checkout') {
steps { git url: 'https://github.com/your-org/your-repo.git', branch: 'main' }
}
stage('Build') {
steps { sh 'mvn clean package -DskipTests' }
}
stage('Test') {
steps { sh 'mvn test' }
post { always { junit '**/target/surefire-reports/*.xml' } }
}
stage('Deploy') {
steps { sh 'scp target/app.jar user@prod:/opt/app/' }
}
}
}
五 常见问题与优化建议
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。