Files
PSProxmox/Documentation

PSProxmox Documentation

PSProxmox is a C#-based PowerShell module for managing Proxmox VE clusters. It provides a comprehensive set of cmdlets for interacting with Proxmox VE API, featuring structured return objects, mass deployment tools, automatic IP management, and more.

Project Structure

  • Module/: Contains the PowerShell module files
  • PSProxmox/: Contains the C# source code for the module
  • Documentation/: Contains detailed documentation and examples
  • Scripts/: Contains build and installation scripts
  • Release/: Contains built releases (created by build script)

Features

  • Session Management: Authenticate and persist sessions with Proxmox VE clusters
  • Core CRUD Operations: Manage VMs, Storage, Network, Users, Roles, SDN, and Clusters
  • Templates: Create and use VM deployment templates
  • Mass Creation: Bulk create VMs with prefix/counter
  • IP Management: CIDR parsing, subnetting, FIFO IP queue assignment
  • Structured Objects: All outputs are typed C# classes (PowerShell-native)
  • Pipeline Support: Cmdlets support pipeline input where appropriate

Getting Started

Documentation

  • Cmdlet Reference - Detailed documentation for all cmdlets
  • Examples - Example scripts for common tasks
  • Guides - Comprehensive guides for various topics

Requirements

  • PowerShell 5.1 or PowerShell 7+
  • .NET Framework 4.7.2 or .NET Core 2.0+

Installation

# Install from PowerShell Gallery
Install-Module -Name PSProxmox -Scope CurrentUser

Manual Installation

# Clone the repository
git clone https://github.com/freedbygrace/PSProxmox.git
cd PSProxmox

# Build the module
.\Scripts\build.ps1

# Install the module
.\Scripts\Install-PSProxmox.ps1

Quick Start

# Import the module
Import-Module PSProxmox

# Connect to a Proxmox VE server
$credential = Get-Credential
$connection = Connect-ProxmoxServer -Server "proxmox.example.com" -Credential $credential -Realm "pam"

# Get all VMs
$vms = Get-ProxmoxVM -Connection $connection

# Create a new VM
$vm = New-ProxmoxVM -Connection $connection -Node "pve1" -Name "test-vm" -Memory 2048 -Cores 2 -DiskSize 32 -Start

# Disconnect when done
Disconnect-ProxmoxServer -Connection $connection

Using the Documentation

For detailed documentation on each cmdlet, you can:

  1. Use the built-in PowerShell help:

    Get-Help Connect-ProxmoxServer -Full
    
  2. Browse the Cmdlet Reference for detailed documentation on all cmdlets.

  3. Check the Examples for example scripts for common tasks.

  4. Read the Guides for comprehensive guides on various topics.

Development

Building the Module

To build the module from source:

# Run the build script
.\Scripts\build.ps1

This will:

  1. Compile the C# code
  2. Create a versioned release in the Release folder
  3. Update the Module folder with the latest build
  4. Create a ZIP package for distribution

Project Organization

  • C# Source Code: All C# source code is in the PSProxmox folder
  • PowerShell Module: The PowerShell module files are in the Module folder
  • Documentation: Comprehensive documentation is in the Documentation folder
  • Scripts: Build and installation scripts are in the Scripts folder

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the MIT License - see the LICENSE file for details.