84 lines
1.9 KiB
Markdown
84 lines
1.9 KiB
Markdown
# Proxmox to Sentri
|
|
Proxmox to Sentri is a utility script that retrieves all virtual machines from a Proxmox cluster and imports them into Sentri as servers.
|
|
|
|
The script collects information such as:
|
|
|
|
- VM name
|
|
- Power state
|
|
- CPU and memory allocation
|
|
- Disk configuration
|
|
- IPv4 and IPv6 addresses
|
|
- Snapshot count
|
|
- Backup availability
|
|
- Operating system information
|
|
- VM descriptions/notes
|
|
|
|
---
|
|
# Requirements
|
|
## System Requirements
|
|
The machine running this script must:
|
|
|
|
- Have network access to the Proxmox web interface/API
|
|
- Have the following packages installed:
|
|
- `curl`
|
|
- `jq`
|
|
- `git` (required for installation)
|
|
|
|
## Proxmox Requirements
|
|
A Proxmox user account with permission to view VMs and storage information is required.
|
|
|
|
Recommended role:
|
|
- `PVEAuditor`
|
|
## Optional: Guest IP Address Collection
|
|
To collect IPv4, IPv6, and operating system information from virtual machines, install the QEMU Guest Agent inside each VM.
|
|
|
|
Example for AlmaLinux/RHEL:
|
|
```bash
|
|
sudo dnf install -y qemu-guest-agent
|
|
sudo systemctl enable --now qemu-guest-agent
|
|
```
|
|
Then enable the QEMU Guest Agent in Proxmox:
|
|
```
|
|
qm set <VMID> --agent enabled=1
|
|
```
|
|
|
|
---
|
|
# Installation
|
|
Clone the repository and configure the environment file:
|
|
```
|
|
cd /optgit clone https://gitea.mooij.me/meteo/proxmox-to-sentri.gitcd proxmox-to-sentricp .env-sample .envchmod 600 .envchmod 740 proxmox-to-sentri.sh
|
|
```
|
|
Optional: Create a global command:
|
|
```
|
|
ln -sf /opt/proxmox-to-sentri/proxmox-to-sentri.sh /usr/bin/proxmox-to-sentri
|
|
```
|
|
|
|
---
|
|
# Configuration
|
|
Edit the `.env` file and configure the Proxmox connection settings:
|
|
```
|
|
PM_HOST="https://proxmox.example.com:8006"
|
|
PM_USER="root@pam"
|
|
PM_PASS="your-password"
|
|
```
|
|
|
|
---
|
|
# Running the Script
|
|
|
|
Run the script directly:
|
|
```
|
|
./proxmox-to-sentri.sh
|
|
```
|
|
Or, if you created the symlink:
|
|
```
|
|
proxmox-to-sentri
|
|
```
|
|
|
|
---
|
|
# Output
|
|
|
|
Generated JSON files are written to:
|
|
```
|
|
/opt/proxmox-to-sentri/output/
|
|
```
|
|
One JSON file is generated per VM. |