Jenkins部署+ssh发布远端

本文详细介绍了如何使用Jenkins结合Maven、SVN和SSH实现自动化项目构建与部署的全过程,包括Jenkins的安装配置、插件下载、任务创建及构建流程等关键步骤。

Jenkins部署+maven+svn+ssh发布远端


鉴于公司目前发布项目还是本地maven打包,然后xftp上传至服务器,再启动服务器这种繁琐、耗时的流程,而且不能自动保留发布历史,所以我自己搭建了一个jenkins平台。流程大致如下:

jenkens下载

linux下可以通过wget下载,这里我从 官网 下载的war。

启动jenkins

下载完成后,我们启动jenkins,首先进入jenkins.war目录,执行 [root@localhost jenkins]# nohup java -jar jenkins.war &,启动成功后,页面访问
http://192.168.1.178:8080 (前面是你自己的IP,jenkins默认8080端口),会出现一个密码输入页面,按照他的要求找到密码,并粘贴到文本框,接着,会有一个插件安装页面,我们选择 推荐的插件即可,然后等待安装。
在这里插入图片描述安装成功之后,
看到如下图所示(出现该页面即可),代表成功。
在这里插入图片描述

配置jenkins

  1. 点击 系统管理 -> 系统设置在这里插入图片描述 鼠标滑到下面,找到如下页面,配置ssh服务器。这里要注意两点 :
    1 如果没有SSH Servers,请下载插件(系统管理 -> 插件管理 -> 可选插件,搜索Publish Over SSH 进行下载)。
    2 需要点开 ‘高级’,勾选 ‘User password’,并且输入远程服务器密码,点击 ‘Test Configuration’,成功。
    在这里插入图片描述
  2. 点击 系统管理 -> 全局工具配置
    配置情况如下图所示,这里的路径指的都是jenkins服务器上的路径,如果没有maven配置,请按照下面下载插件。
    在这里插入图片描述
  3. 新建任务。如下图所示,这里要注意,如果没有 ‘构建一个maven项目’,需要下载插件(系统管理 -> 插件管理 -> 可选插件,搜索Maven Integration 进行下载)。如果你想copy一个已经存在的任务,在复制那个输入框输入你要复制的任务就ok了。

在这里插入图片描述
点击OK,进入任务配置页面。下面粘贴我的基本配置。
在这里插入图片描述 我这里是多模块项目,且本job只发布其中一个module,所以指定了 advertise 模块打包

clean package -pl advertise -am -Dmaven.test.skip=true

在这里插入图片描述
在这里插入图片描述

  • Source files:**/ 为你jenkins的工作空间路径,我打包完成后有多个模块,我只把其中 advertise 模块的jar发到62服务器,所有就配置成了下面路径 **/advertise/target/*jar
  • Remove prefix:去掉的前缀,也就是过滤掉不要的文件夹,我只要jar,所以把它的上级全部都去掉了。
  • Remote directory:远程服务器的文件路径,也就是你的jar要发到哪个路径去,值为 你在系统配置中 SSH Server中配置的 remote dictionary + 这里配置的,我就发到 前面配置的路径,所以这里我不需要再写路径了。
  • Exec command:文件发到指定服务器后,要执行的 shell 脚本,可以直接写在下面,也可以 sh /aa.sh 这样调用。这里 特别特别注意,所有的路径都要是绝对路径
#!/bin/bash

export  BUILD_ID=dontkillme

PID=`lsof -i:7002 | grep LISTEN |awk '{print $2}'`
echo $PID

if [[ $PID -ge 0 ]];then
    kill -9 $PID
     nohup /usr/lib/jdk1.8.0_181/bin/java -Xms100m -Xmx2048m -jar /home/web/jenkins/advertise-1.0.0.jar > /home/web/jars/log/advertise.log 2>&1 &
else
    nohup /usr/lib/jdk1.8.0_181/bin/java -Xms100m -Xmx2048m -jar  /home/web/jenkins/advertise-1.0.0.jar > /home/web/jars/log/advertise.log 2>&1 &
fi

保存、构建

至此,配置就完成了,我们点击保存,然后就可以进行构建。
在这里插入图片描述
点击构建之后,我们可以在左下角 ‘构建队列’ 中看到本次构建进度,通过控制台输出,可以看到构建的详情。
在这里插入图片描述

<think> 嗯,用户需要了解Jenkins搭建及部署远端服务器的方法和步骤。根据提供的引用信息,这个流程主要涉及三个核心环节:Docker安装Jenkins、配置Git和SSH连接、通过插件实现远程部署。用户可能正在搭建自动化部署环境,大概率是运维或开发人员。 从引用[1]看,Docker安装Jenkins是最便捷的方式,需要强调数据卷挂载避免配置丢失。引用[2]详细说明了配置免密登录的关键点,这里需要重点展开,因为密钥配置出错率最高。引用[3]提到的Publish Over SSH插件是远程部署的核心工具,但用户可能不知道安装后如何找到配置入口。 考虑到用户实操时容易遇到的坑,在步骤中需要穿插注意事项:比如容器网络模式的选择、SSH密钥对的权限设置(必须600)、目标服务器目录权限等。最后补充的"疑难解答"是必要的,因为Jenkins控制台日志经常出现连接超时或权限拒绝问题。 用户没有定具体技术栈,但引用中提到Node和Maven项目,说明需要通用性方案。不过前后端部署差异较大,建议在扩展问题里引导用户补充信息。另外,用户可能后续需要Docker部署导,最后的问题4就是为这个延伸需求埋的伏笔。 </think> 以下是基于Docker搭建Jenkins并实现远程服务器部署的完整步骤,整合了三篇参考文献的核心要点: --- ### **Jenkins搭建及远程部署全流程** #### **1. Docker安装Jenkins** ```bash # 创建数据卷(避免容器重启丢失配置) docker volume create jenkins-data # 运行Jenkins容器(开放8080和50000端口) docker run -d \ --name myjenkins \ -p 8080:8080 -p 50000:50000 \ -v jenkins-data:/var/jenkins_home \ jenkins/jenkins:lts ``` > **注意**:首次启动后通过`docker logs myjenkins`获取管理员密码 #### **2. 初始化Jenkins配置** 1. 访问 `http://服务器IP:8080` 完成安装向导 2. 安装推荐插件(包含Git/Maven等基础工具) #### **3. 关键插件安装** 进入 *Manage Jenkins > Manage Plugins*: - **必须插件**:`Publish Over SSH`(实现远程文件传输)[^3] - **建议插件**:`Git Parameter`(分支选择)、`Pipeline`(流水线编排) #### **4. 配置SSH免密登录** ```bash # 在Jenkins服务器生成密钥对(默认路径~/.sshssh-keygen -t rsa # 复制公钥到目标服务器(192.168.1.2) ssh-copy-id user@192.168.1.2 ``` > **验证**:`ssh user@192.168.1.2` 应无需密码直接登录[^2] #### **5. Jenkins系统配置** 1. *Manage Jenkins > Configure System* 2. 找到 **Publish over SSH** 模块: - **SSH Server Name**: `prod-server-1` - **Hostname**: `192.168.1.2` - **Username**: 部署用户 - **Remote Directory**: `/opt/deploy/` (目标服务器存储路径) - **Passphrase/Key**: 选择`~/.ssh/id_rsa`私钥文件 #### **6. 创建部署任务** 1. **新建任务** > 选择*自由风格项目* 2. **源码管理**: - 选择Git,填写仓库URL + 凭据(Git账号密码/SSH密钥) 3. **构建触发器**: - 按需配置(如定时构建、GitLab webhook触发) 4. **构建后操作** → **Send build artifacts over SSH**: ```ini Source files: **/target/*.jar # 编译产物路径 Remove prefix: target/ # 去除前缀 Remote directory: myapp/ # 映射到/opt/deploy/myapp/ Exec command: cd /opt/deploy/myapp && docker build -t myapp . && docker-compose up -d # 自定义部署命令 ``` --- ### **疑难解答** | 问题现象 | 解决方案 | |---------------------------|------------------------------| | SSH连接超时 | 检查防火墙/安全组开放22端口 | | 文件传输失败 | 确认目标目录有写权限(755) | | 免密登录无效 | 执行`chmod 600 ~/.ssh/id_rsa`[^2] | | 插件安装卡顿 | 更换清华镜像源 `https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json` | --- ### **扩展优化建议** 1. **容器化部署**:用Docker Compose管理Jenkins,升级时无缝迁移 2. **流水线进阶**:使用Jenkinsfile实现Pipeline as Code 3. **密钥管理**:使用Jenkins Credentials Binding避免密钥硬编码
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值