Автоматизация и скриптове в Proxmox

Proxmox VE е мощен инструмент за виртуализация, който комбинира KVM и LXC в една платформа. Една от най-големите му предимства е възможността за автоматизация чрез скриптове и API. В тази статия ще разгледаме как да автоматизираме рутинни задачи, да управляваме виртуални машини (VMs) и контейнери (LXC) чрез скриптове, както и как да използваме Proxmox API за по-сложни операции.
1. Защо автоматизацията в Proxmox е важна? ⚡
Автоматизацията спестява време, намалява човешките грешки и улеснява управлението на голяма инфраструктура. С Proxmox можете:
- Създавате/изтривате VMs и LXC контейнери с няколко команди.
- Конфигурирате мрежи, storage и резервни копия без ръчна намеса.
- Мониторирате системата и изпращате известия при проблеми.
2. Инструменти за автоматизация в Proxmox 🛠️
Proxmox предлага няколко начина за автоматизация:
A. Команден ред (CLI) через pvesh
Proxmox има вграден CLI инструмент – pvesh
, който позволява управление на всички аспекти на системата.
Пример:
pvesh get /nodes
(Извежда списък с всички nodes в клъстера)
B. Proxmox API
Proxmox има REST API, достъпен чрез HTTP заявки. Можете да го използвате с curl
или програмен език като Python.
Пример (списък с VMs):
curl -k -u root@pam:парола https://IP:8006/api2/json/nodes/NODE/qemu
C. Скриптове (Bash, Python, etc.)
Можете да пишете скриптове, които използват qm
(за KVM) и pct
(за LXC).
Пример (създаване на LXC контейнер):
pct create 100 local:vztmpl/ubuntu-22.04-standard_22.04-1_amd64.tar.gz –storage local-lvm –rootfs 8 –memory 1024 –cores 1 –hostname my-lxc
3. Автоматизиране на задачи с Bash скриптове 📜
Bash е идеален за бързи автоматизации. Ето няколко практически примера:
Скрипт за масово създаване на VMs
#!/bin/bash
for ID in {101..105}; do
qm create
ID−−name„vm−ID−−name„vm−ID“ –memory 2048 –cores 2 –net0 virtio,bridge=vmbr0
qm importdisk
ID/mnt/pve/ISO/debian11.qcow2local−lvmqmsetID/mnt/pve/ISO/debian11.qcow2local−lvmqmsetID –scsihw virtio-scsi-pci –scsi0 local-lvm:vm-
ID−disk−0qmstartID−disk−0qmstartID
done
Скрипт за резервно копие на всички VMs
#!/bin/bash
NODE=“pve“
STORAGE=“backup-storage“
for VM in 1}’ | tail -n +2); do
vzdump
VM−−modesnapshot−−compresszstd−−storageVM−−modesnapshot−−compresszstd−−storageSTORAGE –node $NODE
done
4. Използване на Proxmox API с Python 🐍
Python е мощен за сложни автоматизации. Използвайки библиотеката proxmoxer
, можете да управлявате Proxmox програмно.
Инсталиране на proxmoxer
pip install proxmoxer
Пример: Списък с всички VMs
from proxmoxer import ProxmoxAPI
proxmox = ProxmoxAPI(„IP“, user=“root@pam“, password=“парола“, verify_ssl=False)
for node in proxmox.nodes.get():
for vm in proxmox.nodes(node[„node“]).qemu.get():
print(f“VM {vm[‘vmid’]}: {vm[‘name’]} (Status: {vm[‘status’]})“)
Пример: Създаване на нов LXC контейнер
proxmox.nodes(„pve“).lxc.create(
vmid=200,
ostemplate=“local:vztmpl/ubuntu-22.04-standard_22.04-1_amd64.tar.gz“,
storage=“local-lvm“,
memory=1024,
cores=1,
hostname=“python-lxc“
)
5. Автоматизиране на резервни копия и мониторинг 🔄
Автоматични резервни копия с cron
Добавете задача в crontab -e
:
0 2 * * * /path/to/backup_script.sh
Мониторинг с Telegram известия
Използвайте curl
за изпращане на съобщения при проблеми:
curl -s -X POST „https://api.telegram.org/botTOKEN/sendMessage“ -d „chat_id=ID&text=Proxmox Alert: High CPU Usage!“
6. Добри практики за автоматизация ✅
✔ Използвайте SSH ключове вместо пароли за по-сигурен достъп.
✔ Тествайте скриптовете в тестова среда преди продуктивна употреба.
✔ Логвайте всички операции за по-лесно отстраняване на грешки.
✔ Използвайте Version Control (Git) за управление на скриптовете.
Заключение 🎯
Автоматизацията в Proxmox значително опростява управлението на виртуална инфраструктура. Чрез CLI, API и скриптове (Bash/Python) можете да:
- Създавате и управлявате VMs/LXC без ръчна намеса.
- Настройвате автоматични резервни копия и мониторинг.
- Интегрирате Proxmox с други системи (напр. Telegram за известия).
Започнете с малки скриптове и постепенно автоматизирайте всичко! 🚀
Благодарим ви за прочитането на статията! Ако намерихте информацията за полезна, можете да дарите посредством бутоните по-долу: 🔰 Donate ☕️ Дарете с PayPalDonate 💳 Дарете с Revolut