jekins跳过过一台机器去部署另外一台机器上的服务

本文详细介绍了使用Jenkins进行自动化部署的过程,包括脚本编写、远程服务器连接、代码上传及服务重启等关键步骤,展示了如何通过Jenkins实现高效稳定的项目部署。

jekins上的脚本这个机器的ip是10.0.0.1

sname=customer-cloud
echo "sname=${sname}"
echo "workspace=${WORKSPACE}"
USER=centos
JUMPER=18.184.87.63
KEY=/var/lib/jenkins/Frankfurt_rootcloud.pem

#create dir structure firstly


echo "upload package"
scp -r -i  ${KEY} ${WORKSPACE}/target/${sname}.jar ${USER}@${JUMPER}:/data/upload/common_${sname}.jar

echo "restart service"

ssh -i ${KEY} ${USER}@${JUMPER} "cd /home/centos/deploy; sudo ./restartCommonSrv.sh ${sname}"


echo "USA AWS common product online deployment done!"

部署项目的机器上的脚本

#!/bin/bash
# Usage:
# startSvc.sh servicename

SERVICENAME=$1
SVCHOME=/data/common_services/${SERVICENAME}
JAVA=java

if [ "x${SERVICENAME}" == "x" ]; then
   echo "must give service name"
   exit 0
fi

P_ID=$(ps -ef | grep  ${SVCHOME}/bin/${SERVICENAME}.jar | grep java | awk '{print $2}')

echo "service running pid = ${P_ID}"

if [ "x${P_ID}" != "x" ]; then
   echo "stop running service:$1 whose pid=${P_ID} " 
   kill -9 ${P_ID}
   sleep 2
fi

echo "start service ${SERVICENAME}.jar "
 nohup ${JAVA} -Xms1024m -Xmx2048m -jar ${SVCHOME}/bin/${SERVICENAME}.jar --spring.config.location=../conf/ > /dev/null 2>&1 &
 #nohup ${JAVA} -Xms512m -Xmx1024m -jar ${SVCHOME}/bin/${SERVICENAME}.jar --spring.config.location=../conf/ > ./log.out 2>&1 &
echo "start-up done!"


### Jenkins离线安装部署教程 #### 准备工作 为了成功完成Jenkins的离线安装,需要提前准备好必要的文件和环境。这包括但不限于Java运行环境以及Jenkins本身的WAR包。 对于Linux系统如CentOS,在准备阶段还需要确保已正确设置好网络连接以便于后续可能存在的资源获取需求,尽管目标是实现完全离线操作[^1]。 #### 安装与配置 一旦准备工作就绪,则可以开始正式的安装流程: - **下载并放置Jenkins WAR包**:从官方渠道或者其他可信源获得最新本或所需特定本的`jenkins.war`文件,并将其复制到服务器上的适当位置。 - **创建Jenkins用户和服务**:建议为Jenkins创建专用的操作系统账户来提高安全性;同时可以通过编写Systemd服务单元文件等方式使Jenkins能够作为后台守护进程稳定运行[^2]。 - **初始化配置**:首次启动时会引导管理员进行一系列初始设定,此时如果处于无网环境下可以直接跳过联网检测环节继续前进至下一步骤。 ```bash sudo java -jar /path/to/jenkins.war --httpPort=8080 ``` 此命令用于指定HTTP监听端口后立即执行Jenkins应用实例化过程[^3]。 #### 插件管理 考虑到可能存在大量依赖关系复杂的插件组合情况,采用批量处理方式更加高效合理: - 利用专门工具比如`jenkins-plugin-manager`可以帮助一次性加载多个预定义好的扩展组件而无需逐一手动添加每一个单独项目。 具体做法如下所示: ```bash java -jar jenkins-plugin-manager-<version>.jar \ --war /path/to/jenkins.war \ --plugin-file plugins.txt \ --output-directory ./plugins/ ``` 上述脚本中的`plugins.txt`应包含所有期望被引入的名字列表,每行一条记录即可满足要求。 #### 自动构建集成 最后一步则是让整个CI/CD流水线运转起来——即利用Shell或其他形式的任务描述符指导Jenkins如何自动化地拉取代码库变更、编译打包产物乃至最终推送更新给生产环境等动作。 通过以上几个方面的工作就可以较为顺利地达成Jenkins离线模式下的搭建目的了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值