栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

jenkins(linux)远程构建windows项目(超详细)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

jenkins(linux)远程构建windows项目(超详细)

1.背景

公司开发的资产管理探针需要在linux、unix、windows上分别部署,使用自动化构建jenkins工具远程部署linux平台容易实现,windows比较折腾,现将个人经验分享。

2.环境
IP操作系统/版本用途
10.66.11.158  

centos7

部署jenkins,版本2.303.1
10.66.11.159windows2010部署探针(java进程)
3.步骤         3.1windows安装启动OpenSSH服务

参考链接:安装 OpenSSH | Microsoft Docs

Windows PowerShell
版权所有 (C) Microsoft Corporation。保留所有权利。
                                                                                                                        尝试新的跨平台 PowerShell https://aka.ms/pscore6                                                                                                                                                                                                PS C:Windowssystem32> Add-WindowsCapability -online -Name OpenSSH.Server~~~~0.0.1.0;                                  

Path          :
online        : True
RestartNeeded : False



PS C:Windowssystem32> Start-Service sshd;
PS C:Windowssystem32> Set-Service -Name sshd -StartupType 'Automatic';
PS C:Windowssystem32> New-ItemProperty -Path "HKLM:SOFTWAREOpenSSH" -Name DefaultShell -Value "C:WindowsSystem32WindowsPowerShellv1.0powershell.exe" -PropertyType String -Force;


DefaultShell : C:WindowsSystem32WindowsPowerShellv1.0powershell.exe
PSPath       : Microsoft.PowerShell.CoreRegistry::HKEY_LOCAL_MACHINESOFTWAREOpenSSH
PSParentPath : Microsoft.PowerShell.CoreRegistry::HKEY_LOCAL_MACHINESOFTWARE
PSChildName  : OpenSSH
PSDrive      : HKLM
PSProvider   : Microsoft.PowerShell.CoreRegistry



PS C:Windowssystem32>

3.1.1 ssh默认安装在 C:ProgramDatassh

3.1.2 修改sshd配置文件,指定根目录

 

 3.1.3 如果保存sshd_config_default提示“你需要TrustedInstaller提供的权限才能对此文件进行更改”,需要修改文件权限

3.1.3.1 右键点击属性,选择安全

3.1.3.2 点击高级选项,更改所有者

 

 3.1.3.3 选择高级后点击立即查找,找到自己本地的计算机用户,将所有者改为本地计算机用户

 3.1.3.4 在编辑中更改权限为所有

这样就拥有对文件删除和编辑保存的权限了

        3.2 windows安装WinRAR,解压tar.gz压缩包

3.2.1 下载地址:WinRAR archiver, a powerful tool to process RAR and ZIP files

 3.2.2 打开安装目录,将WinRAR.exe复制到ssh根目录/tanzhen/ssh下

        3.3 windows安装Git,用以执行shell脚本

3.3.1 下载地址:Git - Downloading Package

3.3.2 打开安装目录,将git-bash.exe加入到环境变量

        3.4 jenkins安装配置Publish Over SSH

3.3.1 安装Publish Over SSH

 3.3.2 配置Publish Over SSH(填写windows主机信息)

参数说明:

      Name:服务名称

      Hostname:主机IP或主机名

      Username:主机登录用户名

      Remote Directory:ssh根目录,/代表C:tanzhenssh(取决于sshd_config配置的根目录)

      Passphrase/Password:主机登录的密码(明文)

 3.3.3 点击Test Configuration验证,返回Success则成功

 3.3.4 创建Item,选择Send files or execute commands over SSH

参数说明:

Source files:准备发送的文件,该文件是相对于这个项目的workspace目录,也就是$JENKINS_HOME/workspace/xxxx/。例如要发送/home/jenkins_home/workspace/Server-Demo/src/Hello.java到目标目录,则设置Source files为src/Hello.java。如果要发送src下的所有文件,可以设置为src/*.*。

Remove prefix:例如设置为src就是只发送Hello.java文件,如果不填会创建src目录层级。

Remote directory:目标目录,比如/usr/local。

Exec command:最后执行的指令。

        3.5 window编写deploy.bat和deploy.sh脚本

3.4.1 编写deploy.bat脚本

SET sourceFile=C:tanzhensshditing-servicesjob-2.0.0.1.tar.gz
SET sourceDir=C:tanzhensshditing-servicesjob-2.0.0.1
SET winrar=C:tanzhensshWinRAR.exe
SET backupDir=C:tanzhensshbackup
SET startFile=C:tanzhensshditing-servicesjob-2.0.0.1binstart.bat

rem 结束进程
FOR /F "tokens=2 delims= " %%P IN ('tasklist ^| findstr "javaw.exe"') DO TaskKill.exe  /PID %%P  -t -f
FOR /F "tokens=2 delims= " %%P IN ('tasklist ^| findstr "java.exe"') DO TaskKill.exe  /PID %%P  -t -f

rem 删除原程序目录
if exist %sourceDir% (
    rd /s/q  %sourceDir% 
)

rem 解压tar.gz包
if exist %sourceFile% (
    if exist %winrar% (
        %winrar% x %sourceFile% .
)
)

rem  替换配置和启动文件
if exist %backupDir% (
    if exist %sourceDir% (
    copy   %backupDir%conf*.yml .diting-servicesjob-2.0.0.1conf
	copy   %backupDir%binstart.bat .diting-servicesjob-2.0.0.1bin
	)
)
rem  C:tanzhensshditing-servicesjob-2.0.0.1binstart.bat

rem  启动程序
"C:Program FilesGitgit-bash.exe" C:tanzhensshdeploy.sh

3.4.2 编写deploy.sh脚本

pwd
sleep 2
cd diting-servicesjob-2.0.0.1/bin
pwd
sleep 2
WORK_ROOT=/diting-servicesjob-2.0.0.1/bin
echo ${WORK_ROOT}
sleep 3
JAVA_OPTS="$JAVA_OPTS  -Drun_dir=$WORK_ROOT"
JAVA_OPTS="$JAVA_OPTS -Xss256k -Xms2048m -Xmx2048m -Xss256k"
JAVA_OPTS="$JAVA_OPTS -Djava.ext.dirs=../lib -Djava.library.path=../lib"
JAVA_OPTS="$JAVA_OPTS -Xbootclasspath/a:../conf"
echo $JAVA_OPTS
sleep 3
nohup java $JAVA_OPTS -Dfile.encoding=utf-8 com.idss.asm.diting.servicesjob.App  &

备注:pwd和sleep只是调试作用。

        3.5 构建查看进程是否启动

 

 进程已经启动,至此自动化构建完成

PS:单独再编写deploy.sh脚本而不是在deploy.bat编写原因是:构建的时候报错不成功,没有找到解决方案

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/459181.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号