zoukankan      html  css  js  c++  java
  • 部署-jenkins发布项目到windows环境

    使用openSSH的方式

    如果我们项目的部署环境在windows环境上,我们可以选择给服务器安装openSSH的方式,然后以脚本的方式进行部署。也可以通过web容器的对外访问地址,发布到web容器上(如tomcat容器)。

    下载openSSH安装包

    博主这里的操作系统是64位的,因此选择这里选择64位的zip包进行下载

    安装openSSH服务

    将zip包进行解压,然后以管理员的方式运行cmd命令行工具,并执行下图所示的命令。

    cd "D:Program Files (x86)OpenSSH-Win64"
    powershell.exe -ExecutionPolicy Bypass -File install-sshd.ps1
    
    #设置服务自动启动并启动服务
    sc config sshd start= auto
    net start sshd
    

    进行连接

    sshd服务安装之后,我们可以使用windows账号进行远程连接。

    ssh account@ip
    

    ssh成功连接之后,就会出现下图所示的提示。

    命令执行结果

    上面我们使用的是用户名和密码的方式进行远程连接,下面我们使用rsa的方式进行远程连接。第一步,先将C:ProgramDatasshsshd_config文件中的相关配置注释。

    enter description here

    第二步,在远程主机的ssh目录下,将本机的ras公钥加入authorized_keys文件中。

    enter description here

    直接使用bat脚本进行发布

    这里以springboot的jar包为例,使用了nssm.exe工具来进行windows服务的部署,没有使用过的小伙伴可以先进行下载。主要使用到了下面三个脚本,这三个脚本都在springboot项目的跟目录下,然后将对应的配置修改之后,只要运行一个copy.bat脚本即可。

    copy.bat脚本,主要是拷贝资源,然后运行远程服务器的bat脚本。

    @echo off
    set server=17637@192.168.3.33
    set rootPath=d:\project\api
    set tempPath=d:\project
    set batPath=%rootPath%\run.bat
    set projectName=userweb-0.0.1-SNAPSHOT.jar
    
    scp -r run.bat %server%:%rootPath%\run.bat
    scp -r main.bat %server%:%rootPath%\main.bat
    scp -r ./userweb/target/%projectName% %server%:%tempPath%\%projectName%
    
    ssh %server% %rootPath%\main.bat
    

    main.bat脚本,主要用于将java程序部署成windows服务。

    @echo off
    set serviceName=userweb
    set "state=100"
    set server=17637@192.168.3.33
    set rootPath=d:\project\api
    set tempPath=d:\project
    set projectName=userweb-0.0.1-SNAPSHOT.jar
    
    for /f "tokens=3" %%i in ('sc query %serviceName% ^| findstr /i state') do (
    	set "state=%%i"
    	if "%%i" == "4" ( nssm stop %serviceName% ) 
    )
    
    if "%state%" == "100" (
    	cp -r %tempPath%\projectName %rootPath%\projectName 
    	nssm install %serviceName% d:\project\api\run.bat
    )
    
    nssm start %serviceName%
    
    exit
    

    run.bat脚本,nssm工具

    java -jar d:\project\api\userweb-0.0.1-SNAPSHOT.jar
    

    查看效果:

    执行结果

    使用jenkins+cmd命令构建任务

    安装服务

    启动服务

    部署成功

    使用deploy to container插件

    如果没有安装deploy to container插件,先进行插件的安装。

    安装deploy to container 插件

    配置tomcat

    在tomcat安装目录下的conf/tomcat-users.xml中,添加远程登陆的用户。内容添加后需要重启tomcat容器。

    <role rolename="manager"/>
    <role rolename="manager-gui"/>
    <role rolename="manager-script"/>
    <role rolename="admin"/>
    <user username="root" password="123456" roles="admin,manager,manager-script,manager-gui"/>
    

    给tomcat添加完用户之后,可以通过tomcat访问路径/manager,进行登陆。

    登陆tomcat管理界面

    配置jenkins任务

    大部分配置都跟之前jar包部署的类似,这里我们只需要着重配置一下tomcat的信息即可。

    配置tomcat信息

    开始构建任务

    enter description here

    博主微信公众号

  • 相关阅读:
    IoC就是IoC,不是什么技术,与GoF一样,是一种 设计模式。
    控制反转是Spring框架的核心。
    一种是CI(Constructor Injection)构造方法注入,另一种是SI(Set Injection) set 注入
    IOC 的理解与解释
    java 单例模式5种写法
    AOP(Aspect Oriented Programming),即面向切面编程
    AOP称为面向切面编程,在程序开发中主要用来解决一些系统层面上的问题
    ioc和aop的区别?
    JAVA设计模式之单例模式
    详解JNDI的lookup资源引用 java:/comp/env
  • 原文地址:https://www.cnblogs.com/chenhaoblog/p/13676630.html
Copyright © 2011-2022 走看看