部署脚本现在会在部署成功/失败后自动调用 /api/report 上报日志。同步到服务器后,需要重新下载安装脚本(因为部署脚本模板变了),再执行一次。

This commit is contained in:
2026-07-19 01:46:56 +08:00
parent cfebcf4f0e
commit 583a15218f
2 changed files with 6 additions and 2 deletions
+3 -1
View File
@@ -36,15 +36,17 @@ Copy-Item "$CertDir\private.key" "$CertDir\private.key.bak" -ErrorAction Sil
Move-Item "$TmpDir\fullchain.pem" "$CertDir\fullchain.pem" -Force Move-Item "$TmpDir\fullchain.pem" "$CertDir\fullchain.pem" -Force
Move-Item "$TmpDir\private.key" "$CertDir\private.key" -Force Move-Item "$TmpDir\private.key" "$CertDir\private.key" -Force
# 5. 校验 & 重载 # 5. 校验 & 重载 & 上报
try { try {
Invoke-Expression $CheckCmd Invoke-Expression $CheckCmd
$remote | Out-File -NoNewline -Encoding ascii $VersionFile $remote | Out-File -NoNewline -Encoding ascii $VersionFile
Invoke-Expression $ReloadCmd Invoke-Expression $ReloadCmd
Write-Host "[$(Get-Date -Format o)] updated: $Domain -> $remote" Write-Host "[$(Get-Date -Format o)] updated: $Domain -> $remote"
try { Invoke-WebRequest -Uri "$BaseUrl/api/report?domain=$EncodedDomain&status=success&message=deployed+v$remote" -Headers $headers -Method POST -UseBasicParsing -SkipCertificateCheck | Out-Null } catch {}
} catch { } catch {
Move-Item "$CertDir\fullchain.pem.bak" "$CertDir\fullchain.pem" -Force -ErrorAction SilentlyContinue Move-Item "$CertDir\fullchain.pem.bak" "$CertDir\fullchain.pem" -Force -ErrorAction SilentlyContinue
Move-Item "$CertDir\private.key.bak" "$CertDir\private.key" -Force -ErrorAction SilentlyContinue Move-Item "$CertDir\private.key.bak" "$CertDir\private.key" -Force -ErrorAction SilentlyContinue
Write-Error "[$(Get-Date -Format o)] FAILED: $Domain, rolled back" Write-Error "[$(Get-Date -Format o)] FAILED: $Domain, rolled back"
try { Invoke-WebRequest -Uri "$BaseUrl/api/report?domain=$EncodedDomain&status=failed&message=check+failed+rolled+back" -Headers $headers -Method POST -UseBasicParsing -SkipCertificateCheck | Out-Null } catch {}
exit 1 exit 1
} }
+3 -1
View File
@@ -41,14 +41,16 @@ cp -f "${CERT_DIR}/private.key" "${CERT_DIR}/private.key.bak" 2>/dev/null || t
mv -f "${TMP_DIR}/fullchain.pem" "${CERT_DIR}/fullchain.pem" mv -f "${TMP_DIR}/fullchain.pem" "${CERT_DIR}/fullchain.pem"
mv -f "${TMP_DIR}/private.key" "${CERT_DIR}/private.key" mv -f "${TMP_DIR}/private.key" "${CERT_DIR}/private.key"
# 5. 校验 & 重载 # 5. 校验 & 重载 & 上报
if ${CHECK_CMD}; then if ${CHECK_CMD}; then
echo "${REMOTE}" > "${VERSION_FILE}" echo "${REMOTE}" > "${VERSION_FILE}"
${RELOAD_CMD} ${RELOAD_CMD}
echo "[$(date -Is)] updated: ${DOMAIN} -> ${REMOTE}" echo "[$(date -Is)] updated: ${DOMAIN} -> ${REMOTE}"
curl "${curl_opts[@]}" "${auth[@]}" -X POST "${BASE_URL}/api/report?domain=${DOMAIN}&status=success&message=deployed+v${REMOTE}" 2>/dev/null || true
else else
mv -f "${CERT_DIR}/fullchain.pem.bak" "${CERT_DIR}/fullchain.pem" 2>/dev/null || true mv -f "${CERT_DIR}/fullchain.pem.bak" "${CERT_DIR}/fullchain.pem" 2>/dev/null || true
mv -f "${CERT_DIR}/private.key.bak" "${CERT_DIR}/private.key" 2>/dev/null || true mv -f "${CERT_DIR}/private.key.bak" "${CERT_DIR}/private.key" 2>/dev/null || true
echo "[$(date -Is)] FAILED: ${DOMAIN}, rolled back" >&2 echo "[$(date -Is)] FAILED: ${DOMAIN}, rolled back" >&2
curl "${curl_opts[@]}" "${auth[@]}" -X POST "${BASE_URL}/api/report?domain=${DOMAIN}&status=failed&message=check+failed+rolled+back" 2>/dev/null || true
exit 1 exit 1
fi fi