Files
jiebanke/scripts/deploy.ps1

111 lines
3.5 KiB
PowerShell
Raw Normal View History

# 结伴客项目部署脚本 (PowerShell 版本)
# 用于将项目部署到远程 CentOS 服务器
param(
[Parameter(Mandatory=$false)]
[string]$Target = ""
)
# 配置信息
$REMOTE_HOST = "1.13.156.49"
$REMOTE_USER = "root"
$REMOTE_PASSWORD = "Aiotjkl$741515"
$BACKEND_REMOTE_PATH = "/data/nodejs/jiebanke"
$ADMIN_SYSTEM_REMOTE_PATH = "/data/vue/jiebanke"
$WEBSITE_REMOTE_PATH = "/data/website/jiebanke"
# 颜色输出函数
function Write-ColorOutput($ForegroundColor) {
# Save the current color
$fc = $host.UI.RawUI.ForegroundColor
$host.UI.RawUI.ForegroundColor = $ForegroundColor
# Output the content
if ($args) {
Write-Output $args
}
else {
$input | Write-Output
}
# Restore the original color
$host.UI.RawUI.ForegroundColor = $fc
}
Write-ColorOutput Green "========== 结伴客项目部署脚本 =========="
# 检查是否提供了部署目标参数
if ($Target -eq "") {
Write-ColorOutput Yellow "使用方法:"
Write-Output " .\deploy.ps1 all - 部署所有模块"
Write-Output " .\deploy.ps1 backend - 部署后端服务"
Write-Output " .\deploy.ps1 admin - 部署后台管理系统"
Write-Output " .\deploy.ps1 website - 部署官方网站"
exit 1
}
# 部署后端服务
function Deploy-Backend {
Write-ColorOutput Green "正在部署后端服务到 $REMOTE_HOST:$BACKEND_REMOTE_PATH ..."
# 同步文件到远程服务器
Write-ColorOutput Green "正在同步文件到远程服务器..."
$rsyncArgs = "-avz --delete --exclude node_modules --exclude .git --exclude logs ../backend/ $REMOTE_USER@$REMOTE_HOST`:$BACKEND_REMOTE_PATH/"
Start-Process -FilePath "rsync" -ArgumentList $rsyncArgs -NoNewWindow -Wait
Write-ColorOutput Green "后端服务部署完成"
}
# 部署后台管理系统
function Deploy-AdminSystem {
Write-ColorOutput Green "正在部署后台管理系统到 $REMOTE_HOST:$ADMIN_SYSTEM_REMOTE_PATH ..."
# 同步文件到远程服务器
Write-ColorOutput Green "正在同步文件到远程服务器..."
$rsyncArgs = "-avz --delete --exclude node_modules --exclude .git --exclude dist ../admin-system/ $REMOTE_USER@$REMOTE_HOST`:$ADMIN_SYSTEM_REMOTE_PATH/"
Start-Process -FilePath "rsync" -ArgumentList $rsyncArgs -NoNewWindow -Wait
Write-ColorOutput Green "后台管理系统部署完成"
}
# 部署官方网站
function Deploy-Website {
Write-ColorOutput Green "正在部署官方网站到 $REMOTE_HOST:$WEBSITE_REMOTE_PATH ..."
# 同步文件到远程服务器
Write-ColorOutput Green "正在同步文件到远程服务器..."
$rsyncArgs = "-avz --delete --exclude node_modules --exclude .git ../website/ $REMOTE_USER@$REMOTE_HOST`:$WEBSITE_REMOTE_PATH/"
Start-Process -FilePath "rsync" -ArgumentList $rsyncArgs -NoNewWindow -Wait
Write-ColorOutput Green "官方网站部署完成"
}
# 部署所有模块
function Deploy-All {
Write-ColorOutput Green "开始部署所有模块..."
Deploy-Backend
Deploy-AdminSystem
Deploy-Website
Write-ColorOutput Green "所有模块部署完成"
}
# 根据参数执行相应操作
switch ($Target) {
"backend" {
Deploy-Backend
}
"admin" {
Deploy-AdminSystem
}
"website" {
Deploy-Website
}
"all" {
Deploy-All
}
default {
Write-ColorOutput Red "未知参数: $Target"
Write-ColorOutput Yellow "请使用: all, backend, admin, website"
exit 1
}
}
Write-ColorOutput Green "========== 部署完成 =========="