A command-line interface for Proxmox Virtual Environment
Project description
Proxmox CLI
A powerful command-line interface tool for managing Proxmox Virtual Environment with support for VMs, containers, users, groups, roles, and permissions.
Features
Infrastructure Management
- 🖥️ Virtual Machines - Create, start, stop, and manage VMs
- 📦 LXC Containers - Full container lifecycle management
- 🔧 Nodes - Monitor and manage cluster nodes
- 💾 Storage - Storage configuration and monitoring
Identity & Access Management (IAM)
- 👤 Users - Create, update, and manage users
- 👥 Groups - Organize users into groups
- 🔐 Roles - Define custom roles with specific privileges
- 🔑 API Tokens - Generate and manage API tokens
- 🛡️ ACLs - Granular permission management
Output & Configuration
- 📊 Multiple Output Formats - JSON (default), Table, YAML, Plain text
- ⚙️ Configuration File - Store credentials and preferences
- 🔒 SSL Control - Flexible SSL verification options
- 🚀 Fast & Efficient - Optimized for automation and scripting
Installation
From PyPI (Recommended)
pip install proxmox-cli
From Source
git clone https://github.com/rwgb/proxmox.cli.git
cd proxmox.cli
pip install -e .
Development Installation
pip install -e ".[dev]"
Quick Start
Basic Usage
# List all VMs (JSON output by default)
proxmox-cli vm list
# List containers in table format
proxmox-cli --output table container list
# List users
proxmox-cli user list
# Show help
proxmox-cli --help
Configuration
Create a configuration file at ~/.config/proxmox-cli/config.yaml:
proxmox:
host: proxmox.example.com
user: root@pam
password: your-password
# Or use API token
# token_name: mytoken
# token_value: your-token-value
verify_ssl: false
output:
format: json # or table, yaml, plain
Usage Examples
Virtual Machines
# List all VMs
proxmox-cli vm list
# List VMs on specific node
proxmox-cli vm list --node pve1
# Start a VM
proxmox-cli vm start 100 --node pve1
# Stop a VM
proxmox-cli vm stop 100 --node pve1
# Get VM status
proxmox-cli vm status 100 --node pve1
Containers
# List all containers
proxmox-cli container list
# Start a container
proxmox-cli container start 108 --node pve1
# Stop a container
proxmox-cli container stop 108 --node pve1
User Management
# List all users
proxmox-cli user list
# Create a new user
proxmox-cli user create developer@pve \
--password "SecurePass123" \
--email "dev@example.com" \
--groups "developers"
# Update user
proxmox-cli user update developer@pve --email "newemail@example.com"
# Delete user
proxmox-cli user delete developer@pve
Role & Permission Management
# List all roles
proxmox-cli role list
# Create custom role
proxmox-cli role create CustomRole \
--privs "VM.Allocate,VM.Audit,VM.PowerMgmt"
# Grant permissions
proxmox-cli acl add \
--path "/" \
--roles "PVEAdmin" \
--users "admin@pve"
API Tokens
# List tokens for a user
proxmox-cli token list user@pve
# Create API token
proxmox-cli token create user@pve mytoken \
--comment "Automation token" \
--no-privsep
# Delete token
proxmox-cli token delete user@pve mytoken
Output Formats
The CLI supports multiple output formats:
# JSON (default) - Perfect for scripting
proxmox-cli vm list
# Table - Human-readable
proxmox-cli --output table vm list
# YAML - Configuration-friendly
proxmox-cli --output yaml user list
# Plain text - Minimal
proxmox-cli --output plain node list
Development
# Install development dependencies
pip install -e ".[dev]"
# Run tests
pytest
# Run linting
flake8 src/
black src/
Configuration
Create a configuration file at ~/.config/proxmox-cli/config.yaml:
proxmox:
host: your-proxmox-host
user: root@pam
verify_ssl: false
License
MIT
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file proxmox_cli-0.1.0.tar.gz.
File metadata
- Download URL: proxmox_cli-0.1.0.tar.gz
- Upload date:
- Size: 36.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
10302874d082545374580c9bc17af32633a2d9dbb9f601e11068bdf33851da2d
|
|
| MD5 |
bc7a5875282beae62580a874a6442110
|
|
| BLAKE2b-256 |
f9d80e3aafab34fe0ec81b51feb3ec2149d504644905108c31d4a1ff500546dd
|
File details
Details for the file proxmox_cli-0.1.0-py3-none-any.whl.
File metadata
- Download URL: proxmox_cli-0.1.0-py3-none-any.whl
- Upload date:
- Size: 20.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f16c513ac04c10658b1f6e6f5b48ba96abdceec268f48fc5858ef753db80998e
|
|
| MD5 |
d116e08a7ebbcc846fc71684bd53dbe9
|
|
| BLAKE2b-256 |
2e8d3122ef7548959c5889e62cbfeed3c97cb30223cd4d941f85abc5a9b0ee73
|