在 Ubuntu 上自定义 Jenkins 脚本执行
一 准备与前提
- 确保已安装 Java 与 Jenkins,并启动服务;Ubuntu 上常用命令为:sudo apt update && sudo apt install -y openjdk-11-jdk jenkins,随后执行 sudo systemctl start jenkins 与 sudo systemctl enable jenkins,访问 http://<服务器IP>:8080 完成初始化。为拉取代码与扩展能力,建议安装 Git 与相关插件(如 Git 插件),插件可在 Web 界面“Manage Jenkins → Manage Plugins”中安装或更新。
二 方式一 Pipeline 项目执行自定义脚本
- 创建任务:在 Jenkins 首页选择 New Item → Pipeline,命名并保存。
- 定义脚本来源:
- 内联脚本:在“Pipeline script”中直接编写 Groovy 流水线;
- SCM 管理:选择“Pipeline script from SCM”,指定 Git 仓库与 Jenkinsfile 路径(如根目录或子目录)。
- 示例 Jenkinsfile(位于项目根目录,提交到 Git):
pipeline {
agent any
environment {
APP_NAME = ‘myapp’
WORKSPACE = ‘/var/lib/jenkins/workspace/your-pipeline-job’
}
stages {
stage(‘Build’) {
steps {
sh ‘’’
chmod +x ${WORKSPACE}/build.sh
${WORKSPACE}/build.sh
‘’’
}
}
stage(‘Test’) {
steps {
sh ‘./test.sh’
}
}
stage(‘Deploy’) {
steps {
sh ‘./deploy.sh’
}
}
}
post {
success {
echo ‘Build and deploy succeeded.’
}
failure {
echo ‘Build or deploy failed.’
}
}
}
- 脚本放置与权限:将 build.sh / test.sh / deploy.sh 放入项目仓库,确保可执行(chmod +x)。在 Jenkins 任务中执行时,工作目录通常为 /var/lib/jenkins/workspace/<任务名>。
三 方式二 Freestyle 项目执行自定义脚本
- 创建任务:选择 New Item → Freestyle project。
- 添加构建步骤:在“Build”区域点击 Add build step → Execute shell,输入要执行的命令或脚本路径,例如:
- 直接命令:echo “Running custom script…” && ./your_script.sh
- 脚本文件:确保工作区中存在脚本并具备执行权限(chmod +x your_script.sh)。
- 保存并构建:点击 Build Now,在“Console Output”查看执行日志与结果。
四 远程与批量执行示例
- 场景:在 Jenkins 节点上运行脚本,通过 SSH 免密将构建产物分发到多台 Nginx 服务器。
- 步骤:
- 在 Jenkins 节点生成密钥并分发公钥到目标主机(如 10.0.0.13、10.0.0.14):ssh-keygen -t rsa -P ‘’ -f ~/.ssh/id_rsa;ssh-copy-id 10.0.0.13;ssh-copy-id 10.0.0.14。
- 编写部署脚本(如 /opt/scripts/deploy.sh):
#!/bin/bash
HOSTS=“10.0.0.13 10.0.0.14”
APP=“bird”
APP_PATH=“/var/www/html”
rm -rf “$APP”
git clone git@your-gitlab.com:dev/“$APP”.git
for h in $HOSTS; do
scp -r “$APP”/* “$h:$APP_PATH/”
done
- 在 Jenkins(Pipeline 或 Freestyle 的 Execute shell)中调用:
chmod +x /opt/scripts/deploy.sh
/opt/scripts/deploy.sh
- 说明:该方式适合多机发布、回滚与滚动更新等自动化运维场景。
五 安全与排错要点
- 权限与路径:脚本需有可执行权限(chmod +x);在 Pipeline 中可使用 environment 定义变量,使用 sh ‘’’ multi-line ‘’’ 编写多行 Shell;工作目录通常为 /var/lib/jenkins/workspace/<任务名>。
- 工具与插件:确保节点已安装 Git 等依赖;如需扩展功能,使用“Manage Jenkins → Manage Plugins”安装或更新插件(如 Git 插件),必要时用 Jenkins CLI 批量管理插件。
- 凭据与密钥:拉取私有仓库与远程部署建议使用 SSH 密钥或 Jenkins 凭据,避免明文密码;远程分发前先本地手动执行脚本验证连通性与权限。
- 日志与通知:通过 post { success/failure } 输出关键信息,并结合邮件/企业微信/钉钉等通知插件实现构建结果告警。