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

Автоматизация и скриптове в 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, който позволява управление на всички аспекти на системата.

Пример:

Terminal
pvesh get /nodes

(Извежда списък с всички nodes в клъстера)

B. Proxmox API

Proxmox има REST API, достъпен чрез HTTP заявки. Можете да го използвате с curl или програмен език като Python.

Пример (списък с VMs):

Terminal
curl -k -u root@pam:парола https://IP:8006/api2/json/nodes/NODE/qemu

C. Скриптове (Bash, Python, etc.)

Можете да пишете скриптове, които използват qm (за KVM) и pct (за LXC).

Пример (създаване на LXC контейнер):

Terminal
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

Terminal
#!/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

Terminal
#!/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

Terminal
pip install proxmoxer

Пример: Списък с всички VMs

Terminal
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 контейнер

Terminal
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:

Terminal
0 2 * * * /path/to/backup_script.sh

Мониторинг с Telegram известия

Използвайте curl за изпращане на съобщения при проблеми:

Terminal
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 за известия).

Започнете с малки скриптове и постепенно автоматизирайте всичко! 🚀

Благодарим ви за прочитането на статията! Ако намерихте информацията за полезна, можете да дарите посредством бутоните по-долу: 🔰