Skip to content

Nuface Blog

隨意隨手記 Casual Notes

Menu
  • Home
  • About
  • Services
  • Blog
  • Contact
  • Privacy Policy
  • Login
Menu

Proxmox Backup Server 與 N8N / Ansible 整合的自動化備援實務

Posted on 2025-11-032025-11-03 by Rico

🔰 引言

在多站備援與雲端混合架構中,
備份流程的自動化已不再是選項,而是必要條件。

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 進行異常偵測、自我調校與預測性備援決策。

Recent Posts

  • Postfix + Let’s Encrypt + BIND9 + DANE Fully Automated TLSA Update Guide
  • Postfix + Let’s Encrypt + BIND9 + DANE TLSA 指紋自動更新完整教學
  • Deploying DANE in Postfix
  • 如何在 Postfix 中部署 DANE
  • DANE: DNSSEC-Based TLS Protection

Recent Comments

  1. Building a Complete Enterprise-Grade Mail System (Overview) - Nuface Blog on High Availability Architecture, Failover, GeoDNS, Monitoring, and Email Abuse Automation (SOAR)
  2. Building a Complete Enterprise-Grade Mail System (Overview) - Nuface Blog on MariaDB + PostfixAdmin: The Core of Virtual Domain & Mailbox Management
  3. Building a Complete Enterprise-Grade Mail System (Overview) - Nuface Blog on Daily Operations, Monitoring, and Performance Tuning for an Enterprise Mail System
  4. Building a Complete Enterprise-Grade Mail System (Overview) - Nuface Blog on Final Chapter: Complete Troubleshooting Guide & Frequently Asked Questions (FAQ)
  5. Building a Complete Enterprise-Grade Mail System (Overview) - Nuface Blog on Network Architecture, DNS Configuration, TLS Design, and Postfix/Dovecot SNI Explained

Archives

  • December 2025
  • November 2025
  • October 2025

Categories

  • AI
  • Apache
  • Cybersecurity
  • Database
  • DNS
  • Docker
  • Fail2Ban
  • FileSystem
  • Firewall
  • Linux
  • LLM
  • Mail
  • N8N
  • OpenLdap
  • OPNsense
  • PHP
  • QoS
  • Samba
  • Switch
  • Virtualization
  • VPN
  • WordPress
© 2025 Nuface Blog | Powered by Superbs Personal Blog theme