如何通过Jenkins实现压缩包格式源码的远程服务器部署
Jenkins 压缩包源码远程部署操作方案
前置配置:先确保SSH远程连接配置正确
你已经安装的SSH相关插件已满足需求,首先完成服务端配置:
- 打开Jenkins后台,依次进入
Manage Jenkins→Configure System,找到「Publish over SSH」配置区块 - 点击「Add」新增远程服务器配置:
- 自定义Name方便识别,比如
web_prod_server - Hostname填远程服务器的可访问IP
- Username填远程服务器的登录用户名(建议使用专门的部署用户,避免直接用root)
- 按需选择密码或SSH密钥作为认证方式,填写对应认证信息
- 点击「Test Configuration」测试连通性,提示Success后再保存配置,连通失败先排查服务器防火墙、端口、认证信息是否正确
- 自定义Name方便识别,比如
任务部署步骤配置
先确保你的Jenkins任务构建完成后,已生成待部署的源码压缩包(比如命名为source_code.tar.gz),再按以下配置:
- 进入对应任务的配置页,找到「构建后操作」模块,选择「Send build artifacts over SSH」
- SSH Server选择你刚才配置好的远程服务器实例
- 「Source files」填写待上传的压缩包相对路径,如果压缩包在任务工作区根目录直接填
source_code.tar.gz即可 - 「Remove prefix」按需填写需要去掉的路径前缀,比如压缩包存放在工作区的build目录下,此处填
build即可 - 「Remote directory」填写压缩包上传到远程服务器的存放目录,建议用临时目录比如
/tmp/deploy_cache,确保登录用户对该目录有读写权限 - 「Exec command」栏粘贴以下自定义脚本,替换为你自己的实际路径后即可:
#!/bin/bash # 替换为你实际的线上代码部署目录 OLD_CODE_DIR="/var/www/html" # 替换为压缩包上传到远程服务器的完整路径,和上面的Remote directory配置对应 COMPRESSED_FILE="/tmp/deploy_cache/source_code.tar.gz" # 删除旧代码 rm -rf ${OLD_CODE_DIR}/* # 解压新源码到部署目录 tar -zxf ${COMPRESSED_FILE} -C ${OLD_CODE_DIR} # 删除服务器上的临时压缩包 rm -f ${COMPRESSED_FILE} # 重启Apache,CentOS/RHEL用以下命令 systemctl restart httpd # Debian/Ubuntu系统替换为下面这条 # systemctl restart apache2
注意事项&问题排查
- 插件无法正常工作优先排查两个核心问题:一是SSH服务器连通性是否测试通过,二是远程命令的路径、权限是否符合你的服务器实际情况
- 所有路径请先和自己的环境核对后再运行,避免直接复制导致误操作
- 可以先在Exec command中写
pwd && ls测试远程命令执行能力,排除权限问题 - 重启Apache提示权限不足的话,可在远程服务器
/etc/sudoers文件中添加一行部署用户名 ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart httpd,然后在脚本的重启命令前加sudo即可 - 建议先在测试环境验证流程正常后再应用到生产环境
内容的提问来源于stack exchange,提问作者geek12
相关产品推荐
相关产品推荐

