🔰 引言
在多站備援與雲端混合架構中,
備份流程的自動化已不再是選項,而是必要條件。
Proxmox Backup Server (PBS) 具備完備的 RESTful API 與 CLI 工具,
能與開源自動化平台(如 N8N 與 Ansible)無縫整合。
結合這兩套工具,企業可建立一套「自我執行、自我驗證、自我修復」的備援體系,
確保任何備份異常都能即時被偵測、回報、並觸發自動修復任務。
🧩 一、整體架構概覽
自動化架構示意圖
┌─────────────────────────────┐
│ Proxmox VE Cluster │
│ (Production VMs / CTs) │
└──────────────┬──────────────┘
│ Backup API Trigger
▼
┌─────────────────────────────┐
│ Proxmox Backup Server (PBS) │
│ - API Endpoint (REST) │
│ - Sync / Verify / Restore │
└──────────────┬──────────────┘
│
┌───────┴───────────────────────┐
│ │
┌──────────────┐ ┌────────────────┐
│ N8N Flow │ │ Ansible Play │
│ API Orchestr │ │ Automated Exec │
│ Notification │ │ (Sync, Verify) │
└──────────────┘ └────────────────┘
│ │
▼ ▼
Slack / Email Multi-Site PBS / DR Restore
⚙️ 二、N8N 與 PBS API 整合機制
1️⃣ 為何選用 N8N
N8N 是一套開源的自動化工作流平台,
能以「事件驅動」的方式串接 API、Webhook、與多種監控觸發條件。
它非常適合:
- 定期備份觸發
- 備份完成通知
- 錯誤偵測與回報
- 自動啟動 Ansible 任務
2️⃣ PBS 提供的主要 API 介面
| 功能 | API Endpoint | 用途 |
|---|---|---|
| 啟動備份 | /api2/json/admin/datastore/<store>/backup | 觸發 VM / CT 備份 |
| 執行驗證 | /api2/json/admin/datastore/<store>/verify | 啟動 Verify Job |
| 執行同步 | /api2/json/admin/datastore/<store>/sync | 觸發跨站同步 |
| 執行還原 | /api2/json/admin/datastore/<store>/restore | 啟動還原流程 |
| 查詢任務狀態 | /api2/json/nodes/<node>/tasks | 取得任務執行結果 |
3️⃣ N8N 自動化流程設計範例
流程邏輯:
1️⃣ 定期(每日 23:00)觸發 PBS 備份 API
2️⃣ 備份完成後查詢任務狀態
3️⃣ 若發現任務失敗 → 傳送 Slack / Email 通知
4️⃣ 同時呼叫 Ansible Playbook 自動修復
N8N Workflow 範例節點:
[Schedule Trigger] → [HTTP Request to PBS Backup API]
→ [HTTP Request to PBS Task Status]
→ [IF (Status != OK)] → [Slack Notification]
→ [Execute Command Node: ansible-playbook recover.yml]
🧠 三、Ansible 自動化部署與同步
1️⃣ 為何使用 Ansible
Ansible 採用「Agentless」架構,
可直接透過 SSH 或 API 同步 PBS 設定與任務,適合:
- 批次管理多台 PBS 節點
- 自動建立 Sync Job / Verify Job
- 自動備援切換(Failover)
2️⃣ Ansible Playbook 範例 — 自動同步任務
- name: PBS Sync Job Automation
hosts: pbs-nodes
tasks:
- name: Trigger Sync Job
command: >
proxmox-backup-manager sync-job run --id sync-to-dr
- name: Run Verify Job
command: >
proxmox-backup-manager verify start --store pbs-remote --all
- name: Send Log
command: >
curl -X POST -H "Content-Type: application/json"
-d '{"status":"completed","job":"sync-to-dr"}'
https://n8n-server/webhook/pbs-report
3️⃣ Ansible Playbook — 自動還原(DR 模式)
- name: Restore Critical VM from DR PBS
hosts: dr-pbs
tasks:
- name: Trigger Restore API
uri:
url: "https://dr-pbs:8007/api2/json/admin/datastore/pbs-remote/restore"
method: POST
body_format: form-urlencoded
body:
backup-type: "vm"
backup-id: "vm-101"
target: "/mnt/vmrestore"
validate_certs: no
user: "api-user@pbs"
password: "{{ pbs_token }}"
此流程可搭配 N8N 當觸發器,在發現主站 PBS 故障時自動執行。
🧩 四、自動監控與通知
1️⃣ 整合 Slack / Email 報告
PBS 任務結果可透過 N8N 以 Slack / Gmail / SMTP 節點發送:
[IF task failed] → [Slack Node]
Message: "Backup Job Failed on {{node}} at {{time}}"
2️⃣ 整合 Prometheus + N8N
N8N 可定期查詢 PBS API 指標並送往 Prometheus:
- 備份成功率
- 同步延遲時間
- 任務平均執行時間
結合 Grafana,可建立「自動化備援健康儀表板」。
🔄 五、自動化工作流實作案例
| 任務 | 自動化工具 | 功能 |
|---|---|---|
| 備份排程觸發 | N8N Scheduler | 每日定期備份 |
| 備份完成回報 | N8N HTTP + Slack | 成功/失敗通知 |
| 跨站同步 | Ansible Playbook | 自動同步 DR 站點 |
| 驗證任務 | Ansible + PBS Verify Job | 自動檢查完整性 |
| 異常修復 | N8N → Ansible Trigger | 自動執行復原腳本 |
| 報告匯整 | N8N Email Node | 每週寄送 PDF 報告 |
☁️ 六、最佳實務與安全考量
| 項目 | 建議做法 |
|---|---|
| API 安全性 | 使用 PBS API Token + 限制來源 IP |
| 憑證 | 全面採用 HTTPS / TLS 1.2 以上 |
| Ansible 金鑰管理 | 使用 Vault 加密變數 |
| N8N Webhook | 加上 Token 驗證與簽章檢查 |
| 錯誤追蹤 | 在 N8N 加入「Error Workflow」分支 |
| 多站節點同步 | 使用 pull 模式減少主動連線暴露風險 |
✅ 結語
透過 Proxmox Backup Server + N8N + Ansible,
企業可建立一套真正「自動化、可觀測、可修復」的備援體系。
此架構具備:
- 自動化備份與同步任務
- 即時錯誤回報與事件觸發
- 異常時自動執行修復或還原
- 與雲端備援(Ceph / S3 / PBS Remote)無縫整合
最終達成:
自動化備援、智慧化監控、零人工介入的資料韌性架構。
💬 下一篇(延伸主題):
「Proxmox AI Operations:使用 LLM 進行自動化維運與決策分析」,
將進一步探討如何結合 AI 進行異常偵測、自我調校與預測性備援決策。