在 Ubuntu 上实现 Jenkins 自动化,通常包含几个层面:
安装自动化、任务构建自动化、部署自动化、运维自动化。下面我按「从 0 到自动化」给你一个清晰路线。
#!/bin/bash
sudo apt update
sudo apt install -y openjdk-17-jdk
curl -fsSL https://pkg.jenkins.io/debian/jenkins.io.key | sudo tee \
/usr/share/keyrings/jenkins-keyring.asc > /dev/null
echo deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] \
https://pkg.jenkins.io/debian binary/ | sudo tee \
/etc/apt/sources.list.d/jenkins.list > /dev/null
sudo apt update
sudo apt install -y jenkins
sudo systemctl enable --now jenkins
Jenkins 默认端口:
8080
源码管理
https://github.com/your/repo.git构建触发器
H/5 * * * *
(每 5 分钟检查一次)
构建步骤(Shell)
npm install
npm run build
Jenkinsfilepipeline {
agent any
stages {
stage('Clone') {
steps {
git 'https://github.com/your/repo.git'
}
}
stage('Build') {
steps {
sh 'npm install'
sh 'npm run build'
}
}
stage('Test') {
steps {
sh 'npm test'
}
}
}
}
Jenkins 会自动:
Jenkins → 系统设置 → Publish over SSH
构建后执行:
scp -r dist/* user@server:/var/www/html
ssh user@server "systemctl restart nginx"
stage('Deploy') {
steps {
sh 'scp -r dist/* user@server:/var/www/html'
sh 'ssh user@server "systemctl restart nginx"'
}
}
| 类型 | 说明 |
|---|---|
| Poll SCM | 定时检查 Git |
| Webhook | Git Push 自动触发(推荐) |
| Cron | 定时任务 |
| upstream | 其他 Job 完成后触发 |
GitHub Webhook 示例
http://jenkins-ip:8080/github-webhook/
tar czf jenkins-backup.tar.gz /var/lib/jenkins
sudo systemctl restart jenkins
✅ Jenkins + Docker
✅ Jenkins + Ansible
✅ Jenkins + Kubernetes
✅ 多节点 Slave 自动扩容
我可以直接给你 可用的 Jenkinsfile + 脚本。