jenkins实战2-jenkins 远程构建

该博客介绍了Jenkins的安装部署及项目构建方法。包括本地构建部署,以及当Jenkins机器和部署服务机器不在一起时的远程构建方案。详细阐述了单节点部署和多节点部署的具体操作步骤,如安装插件、配置参数、编写脚本等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

jenkins实战1-jenkins+maven+git构建项目

这篇博客讲了如何安装和部署jenkins,如何在jenkins服务器本地构建部署项目,但是有时候jenkins 机器和需要部署的服务机器不在一起,这时可以使用jenkins远程构建来解决这个问题.

jenkins 远程构建的原理也很简单,通过将代码pull 到jenkins服务器 的工作目录,打包,然后再远程拷贝到部署的服务器,再执行shell命令.即可完成项目发布.

方案一(适合单节点部署)

1.首先需要jenkins安装  Publish Over SSH 插件

 

安装完成后需要重启jenkins

 

启动后配置 

 

 

  name 写部署服务器名字    hostname 写 服务器ip  user 写 服务用户名   remote directory  是jenkins远程项目拷贝部署服务器的目录,很重要,我这里就写tomcat 目录. 勾选 使用密码登录  passphrase password 写服务器登录密码.

配置就完成了

然后新建项目

新建项目和本地构建是差不多的.

jenkins 服务器执行shell 这里就不要写发布或者重启服务器了只有打包命令.

构建后操作比较重要,它会把打的包 发布到部署的服务器,然后执行一段 shell

注意source file(项目包文件) 需要写相对路径, 比如我项目目录是 /root/.jenkins/workspace/face-secret-service-test  项目包文件是

/root/.jenkins/workspace/face-secret-service-test/target/facesecret.war   source file就写 target/facesecret.war    remove prefix 写 target/     remote direct就是目标目录.会和前面配置的remote directory  拼接起来,我这里就没写了.

exec command 就是把项目拷贝到服务器后执行的命令.  我这里比较简单, 把war 扔到tomcat webapps 目录下 然后重启tomcat

这种方式有一个缺点,如果生产环境是集群的,jenkins 要建立很多个 item,太多了有点乱,而且容易出错。所以这边还有第二个方案。

 

方案二(适合多节点部署)

1.首先在jenkins 建立 变量 host  把需要部署的机器ip 添加上

2. jenkins 机器和 目标机器设置免密登录

mkdir .ssh
cd .ssh/
ssh-keygen -t rsa  # 创建ssh秘钥,一路回车下去
ll  # 查看
cat id_rsa.pub >>  authorized_keys  #复制公钥到文件
scp authorized_keys root@192.168.53.134:~/.ssh/authorized_keys

jenkins 机器和目标机器都将 公钥复制到  authorized_keys 文件中,然后分别复制到两台机器的   ~/.ssh/ 目录 ,即可实现两台机器的免密登录。

编写构建脚本,原理就是使用scp 命令 拷贝文件到指定服务器,然后执行 远程shell。

#!/bin/bash
BUILD_ID=DONTKILLME
cd /root/.jenkins/workspace/springboot-test/
 
mvn clean package -Dmaven.test.skip=true
 
echo $host

ssh root@$host "/root/project/stop.sh" 

scp /root/.jenkins/workspace/springboot-test/target/*.jar root@$host:/root/project/

ssh root@$host "/root/project/start.sh" 

start.sh

#!/bin/bash
source /etc/profile

nohup java -jar /root/project/springboot-test-0.0.1-SNAPSHOT.jar >/dev/null 2>&1 &

stop.sh

#!/bin/bash
source /etc/profile

kill -9 $(netstat -nlp | grep :8080 | awk '{print $7}' | awk -F"/" '{ print $1 }')

 

 

点击 build width paramters ,在host 中输入想要部署节点的ip,即可实现部署,多个节点可以一台一台的部署,生产环境比较推荐这样做,因为部署失败了,整个集群还是可用的。当然大家也可以修改jenkins 上的执行shell,用符号分隔ip,然后通过遍历方式同时部署到多个节点。这里就不再赘述了。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值