You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
60 lines
1.9 KiB
60 lines
1.9 KiB
# Deploy sqlservercheck ke reverse proxy (10.100.1.24) |
|
# Usage: .\scripts\deploy-sqlservercheck.ps1 |
|
# .\scripts\deploy-sqlservercheck.ps1 -NoBuild |
|
|
|
param( |
|
[switch]$NoBuild |
|
) |
|
|
|
$ErrorActionPreference = "Stop" |
|
|
|
$HostAddr = "10.100.1.24" |
|
$SshPort = 22 |
|
$SshMac = "hmac-sha1" |
|
$SshUser = "root" |
|
$RemoteStack = "/opt/stacks/sqlservercheck" |
|
$ProjectRoot = Split-Path $PSScriptRoot -Parent |
|
$StackDir = Join-Path $ProjectRoot "sqlservercheck" |
|
$Tarball = Join-Path $ProjectRoot "sqlservercheck-deploy.tar.gz" |
|
|
|
if (-not (Test-Path $StackDir)) { |
|
throw "Folder tidak ditemukan: $StackDir" |
|
} |
|
|
|
Write-Host "==> Pack sqlservercheck (tanpa .env)..." |
|
Push-Location $StackDir |
|
tar -czf $Tarball --exclude=".env" . |
|
Pop-Location |
|
|
|
Write-Host "==> Upload ke $HostAddr..." |
|
scp -o BatchMode=yes -o MACs=$SshMac -P $SshPort $Tarball "${SshUser}@${HostAddr}:/tmp/sqlservercheck-deploy.tar.gz" |
|
|
|
Write-Host "==> Extract..." |
|
$extract = @" |
|
set -e |
|
cd $RemoteStack |
|
cp .env /tmp/sqlservercheck.env.bak 2>/dev/null || true |
|
tar -xzf /tmp/sqlservercheck-deploy.tar.gz |
|
"@ |
|
|
|
ssh -o BatchMode=yes -m $SshMac "${SshUser}@${HostAddr}" -p $SshPort $extract |
|
|
|
if ($NoBuild) { |
|
Write-Host "==> Restart container (tanpa rebuild)..." |
|
ssh -o BatchMode=yes -m $SshMac "${SshUser}@${HostAddr}" -p $SshPort "cd $RemoteStack && docker compose up -d" |
|
} else { |
|
Write-Host "==> Docker compose build + up..." |
|
ssh -o BatchMode=yes -m $SshMac "${SshUser}@${HostAddr}" -p $SshPort "cd $RemoteStack && docker compose up -d --build" |
|
} |
|
|
|
Write-Host "==> Health check..." |
|
Start-Sleep -Seconds 6 |
|
ssh -o BatchMode=yes -m $SshMac "${SshUser}@${HostAddr}" -p $SshPort @" |
|
docker ps --filter name=sqlservercheck --format 'table {{.Names}}\t{{.Status}}' |
|
curl -sf -o /dev/null -w 'localhost /ts: %{http_code}\n' http://127.0.0.1:8090/ts |
|
"@ |
|
|
|
Write-Host "" |
|
Write-Host "Deploy selesai." |
|
Write-Host " https://sqlservercheck.gisportal.id/ts" |
|
Write-Host " https://sqlservercheck.gisportal.id/nts"
|
|
|