Skip to main content

A command-line interface for Proxmox Virtual Environment

Project description

Proxmox CLI

PyPI version Python versions License: MIT

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

proxmox_cli-0.1.0.tar.gz (36.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

proxmox_cli-0.1.0-py3-none-any.whl (20.4 kB view details)

Uploaded Python 3

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

Hashes for proxmox_cli-0.1.0.tar.gz
Algorithm Hash digest
SHA256 10302874d082545374580c9bc17af32633a2d9dbb9f601e11068bdf33851da2d
MD5 bc7a5875282beae62580a874a6442110
BLAKE2b-256 f9d80e3aafab34fe0ec81b51feb3ec2149d504644905108c31d4a1ff500546dd

See more details on using hashes here.

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

Hashes for proxmox_cli-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f16c513ac04c10658b1f6e6f5b48ba96abdceec268f48fc5858ef753db80998e
MD5 d116e08a7ebbcc846fc71684bd53dbe9
BLAKE2b-256 2e8d3122ef7548959c5889e62cbfeed3c97cb30223cd4d941f85abc5a9b0ee73

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page