您现在的位置是:主页 > news > 青岛个人网站制作/磁力吧
青岛个人网站制作/磁力吧
admin2025/5/23 15:46:28【news】
简介青岛个人网站制作,磁力吧,合肥有没有做网站的单位,上海电商网站建设公司发布应用应用构建成功后,接下来是将构建项目的输出目录copy到应用服务器相应的站点目录中,由于目标的应用服务器都是windows系统,因此无法像linux系统一样通过ssh远程命令操作。目前提供了三种解决方案,使用Ftp直接上传到应用服务…
发布应用
应用构建成功后,接下来是将构建项目的输出目录copy到应用服务器相应的站点目录中,由于目标的应用服务器都是windows系统,因此无法像linux系统一样通过ssh远程命令操作。目前提供了三种解决方案,使用Ftp直接上传到应用服务器,使用Windows下的Rsync方式,以及Python脚本的方式。
1) Ftp方式
1.1 需先Jenkins上安装Ftp插件。同时在发布的目标应用服务器安装配置好Ftp服务。
安装插件后,进入系统管理->Global Tool Configuration,找到FTP repository hosts配置选项。
Porfile Name:随便取个名字,后面Job配置会应用到。
hostname:Ftp主机名(端口号默认21)
TimeOut:设置timeout
Root Repository Path:Ftp服务端跟/目录
User Name:Ftp用户名
Password:Ftp密码
1.2 项目配置
构建后操作->增加构建后操作步骤->Publish artifacts to FTP
FTP site:全局中配置的
Source:选择发布包路径,即项目构建输出的目录。
Remote directory:放到远程目标路径(相对于Ftp根目录的路径)
前提先在要发布的目标服务器上先安装好FTP服务,搭建IIS的ftp站点,作为FTP服务器端,具体安装略。
配置完成后,Jenkins上点击构建。
2) Rsync方式
2.1 Windows server环境配置使用rsync命令。
Jenkins的Job配置项构建中,增加构建步骤->Execute Windows batch command
2.2 配置rsync
Windows server中使用rsync命令需要安装配置cwRsync,有Server端和Client端。现在官网已经不免费提供cwRsync Server服务了。应用服务器端安装cwRsync Server,Jenkins服务器配置rsync的Client端。具体cwRsync Server与Client安装略。
cwRsync Server默认安装下,cwRsync Server端的C:\Program Files (x86)\ICW\rsync.conf文件配置如下:
uid = 0
gid = 0
use chroot = false
strict modes = false
hosts allow = *
log file = rsyncd.log
port = 873
[APIData]
path = /cygdrive/e/Web/APIData-test/web
secrets file = /cygdrive/c/Program Files (x86)/ICW/rsyncd.secrets
list = true
auth users = rsync_user
read only = false
cwRsync Client端的rsync命令在Jenkins中的配置如下:
"C:\Program Files (x86)\cwRsync\bin\rsync.exe" -avzP --progress --delete --port=873 --password-file="/cygdrive/c/Program Files (x86)/cwRsync/passwd.txt" /cygdrive/e/Publish-web/APIData-Test2/web/ rsync_user@10.10.10.53::APIData
配置完成后,Jenkins上点击构建。
3) Python脚本实现方式
winRM服务是windows server下PowerShell的远程管理服务。Python脚本可通过连接winRM模块操作windows命令行。
3.1配置winRM服务
在被控制windows server上winRM服务操作:
查看winRM服务状态,默认都是未启动状态,下面命令执行后无任何结果输出,需执行后续步骤进行开启。
> winrm enumerate winrm/config/listener
配置winRM服务启动
> winrm quickconfig
查看windows的winrm service listener
> winrm e winrm/config/listener
winrm service配置auth
> winrm set winrm/config/service/auth @{Basic="true"}
配置winrm service 加密方式为允许非加密
> winrm set winrm/config/service @{AllowUnencrypted="true"}
3.2配置python脚本
Job配置项构建中,增加构建步骤->Execute Windows batch command
Python脚本如下:
import winrm
import os
import sys
import time
env = os.getenv("ENV")
print('选择发布构建的服务器ENV是:', env)
if env == '10.10.10.10':
win2008r2 = winrm.Session('http://10.10.10.10:5985/wsman',auth=('deploy_user','xxxxxx'))
ip = win2008r2.run_cmd('ipconfig | findstr "10.10.10.10"')
app_list = win2008r2.run_cmd('C:\\Windows\\System32\\inetsrv\\appcmd.exe list app')
app_stop = win2008r2.run_cmd('C:\\Windows\\System32\\inetsrv\\appcmd.exe stop site DataapiBM')
backup = win2008r2.run_cmd('xcopy D:\\Web-prd\\DataapiBM D:\\Web-prd\\backup\\DataapiBM-%date:~8,2%月%date:~11,2%日%time:~0,2%时%time:~3,2%分%time:~6,2%秒\ /exclude:D:\\Web-prd\\backup\\exclude.txt /ryhs')
rsync_code = win2008r2.run_cmd('C:\\cwRsync\\bin\\rsync.exe -vzrtopg --numeric-ids --progress --port=1873 --password-file=/cygdrive/c/cwRsync/passwd.txt
app_start = win2008r2.run_cmd('C:\\Windows\\System32\\inetsrv\\appcmd.exe start site DataapiBM')
app = win2008r2.run_cmd('C:\\Windows\\System32\\inetsrv\\appcmd.exe list app | findstr DataapiBM')
print("当前发布的服务器IP:")
print(ip.std_out)
print("列出当前应用pool站点app")
print(app_list.std_out.decode())
print(app_list.std_err)
print("开始停DataapiBM站点app")
print("Stoping...")
print(app_stop.std_out.decode())
print(app_stop.std_err)
time.sleep(3)
print("开始备份DataapiBM站点程序...")
print(backup.std_out)
print(backup.std_err)
time.sleep(3)
print("开始从代码仓库同步DataapiBM最新程序...")
print(rsync_code.std_out.decode())
print(rsync_code.std_err)
time.sleep(5)
print("开始启动DataapiBM站点服务")
print("Starting...")
print(app_start.std_out.decode())
print(app_start.std_err)
time.sleep(5)
print(app.std_out.decode())
print(app.std_err)
print("站点服务DataapiBM已启动成功,发布完成,请验证!")
elif env == '10.10.10.11':
win2008r2 = winrm.Session('http://10.10.10.11:5985/wsman',auth=('deploy_user','HicoreP@ss'))
ip = win2008r2.run_cmd('ipconfig | findstr "10.10.10.11"')
app_list = win2008r2.run_cmd('C:\\Windows\\System32\\inetsrv\\appcmd.exe list app')
app_stop = win2008r2.run_cmd('C:\\Windows\\System32\\inetsrv\\appcmd.exe stop site DataapiBM')
backup = win2008r2.run_cmd('xcopy D:\\Web-prd\\DataapiBM D:\\Web-prd\\backup\\DataapiBM-%date:~8,2%月%date:~11,2%日%time:~0,2%时%time:~3,2%分%time:~6,2%秒\ /exclude:D:\\Web-prd\\backup\\exclude.txt /ryhs')
rsync_code = win2008r2.run_cmd('C:\\cwRsync\\bin\\rsync.exe -vzrtopg --numeric-ids --progress --port=1873 --password-file=/cygdrive/c/cwRsync/passwd.txt
app_start = win2008r2.run_cmd('C:\\Windows\\System32\\inetsrv\\appcmd.exe start site DataapiBM')
app = win2008r2.run_cmd('C:\\Windows\\System32\\inetsrv\\appcmd.exe list app | findstr DataapiBM')
print("当前发布的服务器IP:")
print(ip.std_out)
print("列出当前应用pool站点app")
print(app_list.std_out.decode())
print(app_list.std_err)
print("开始停DataapiBM站点app")
print("Stoping...")
print(app_stop.std_out.decode())
print(app_stop.std_err)
time.sleep(3)
print("开始备份DataapiBM站点程序...")
print(backup.std_out)
print(backup.std_err)
time.sleep(3)
print("开始从代码仓库同步DataapiBM最新程序...")
print(rsync_code.std_out.decode())
print(rsync_code.std_err)
time.sleep(5)
print("开始启动DataapiBM站点服务")
print("Starting...")
print(app_start.std_out.decode())
print(app_start.std_err)
time.sleep(5)
print(app.std_out.decode())
print(app.std_err)
print("站点服务DataapiBM已启动成功,发布完成,请验证!")
else:
print('请正确选择部署环境!')
配置完成后,点击“Build with Parameters”,选择下拉框中对应的服务器节点进行构建。
查看构建情况,通过控制台查看:
控制台输出构建详细的log信息,如果构建成功,会有个蓝色的圈圈,并且控制台最后输出“Finished: SUCCESS”信息,表示此Job构建成功。相应的如果构建失败,控制台也会输出报错信息。
自此,项目自动化构建完成。当然其中有些环节还需继续优化。测试比较下来,应用发布这步操作,winRM+Python方式比较灵活方便。