Ubuntu Jenkins定制脚本指南
在Ubuntu环境下,Jenkins定制脚本主要通过Pipeline(声明式/脚本式)或Freestyle Project实现,以下是详细步骤及注意事项:
安装Jenkins与依赖
确保Ubuntu服务器已安装Jenkins(通过apt
仓库安装)及Java环境(Jenkins依赖Java 11+)。若未安装,可参考以下命令:
sudo apt update
sudo apt install openjdk-11-jdk -y
wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -
sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
sudo apt update
sudo apt install jenkins -y
sudo systemctl start jenkins
sudo systemctl enable jenkins
配置Jenkins基础环境
访问http://<服务器IP>:8080
完成初始配置(如解锁管理员密码、设置用户名/密码),并安装必要插件(如Git、Pipeline、SSH等)。
适用于快速添加单条或多条自定义命令,适合小型项目或临时任务。
进入Jenkins主页,点击New Item→输入Job名称→选择Freestyle project→点击OK。
在Job配置页面的Build section,点击Add build step→选择Execute shell(Ubuntu默认使用bash)。
在文本框中输入自定义命令,例如:
#!/bin/bash
echo "开始构建项目..."
# 更新系统依赖
sudo apt update -y
# 克隆代码仓库(需提前配置Git凭证)
git clone https://github.com/your-repo/your-project.git
cd your-project
# 安装Python依赖
pip install -r requirements.txt
# 运行单元测试
pytest tests/
# 构建项目(假设是Python项目)
python setup.py sdist bdist_wheel
echo "构建完成!"
注意:若脚本需要保存到版本控制,可将脚本文件(如
build.sh
)放入项目目录,通过git clone
拉取后执行./build.sh
。
点击Save,然后点击Build Now触发构建。构建日志会显示脚本执行结果。
适用于需要阶段化管理、可重用性、版本控制的项目(推荐方式)。
进入Jenkins主页,点击New Item→输入Job名称→选择Pipeline→点击OK。
Pipeline有两种定义方式,根据需求选择:
Jenkinsfile
路径(通常为项目根目录下的Jenkinsfile
)。以下是一个完整的Jenkinsfile
示例(声明式语法),覆盖构建→测试→部署流程:
pipeline {
agent any // 使用任意可用节点
stages {
stage('Checkout') {
steps {
git url: 'https://github.com/your-repo/your-project.git', branch: 'main' // 拉取代码
}
}
stage('Build') {
steps {
sh 'npm install' // 安装Node.js依赖(前端项目示例)
sh 'npm run build' // 执行构建命令
}
}
stage('Test') {
steps {
sh 'npm test' // 运行单元测试
}
}
stage('Deploy') {
steps {
sh 'scp -r dist/* user@deploy-server:/var/www/html/' // 部署到远程服务器
}
}
}
post {
success {
echo '✅ 构建成功!'
// 可添加通知步骤(如邮件、Slack)
}
failure {
echo '❌ 构建失败!'
// 可添加报警步骤
}
}
}
点击Save,然后点击Build Now。Pipeline会按阶段依次执行,可通过Blue Ocean插件可视化流程。
权限与安全
chown -R jenkins:jenkins /var/lib/jenkins/workspace/your-job
)。环境配置
PATH
配置环境变量。sh
(Linux/macOS)或bat
(Windows)命令区分环境。调试技巧
优化建议
Jenkinsfile
(如每个模块一个),通过pipeline
的agent
或stage
复用。通过以上步骤,可在Ubuntu Jenkins中灵活定制脚本,满足从简单构建到复杂CI/CD流程的需求。