Files
2025-05-09 15:30:36 -04:00

129 lines
3.7 KiB
Markdown

# 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
- [Installation Guide](guides/Installation.md)
- [Connection Guide](guides/Connection.md)
- [Authentication Methods](guides/Authentication.md)
## Documentation
- [Cmdlet Reference](cmdlets/README.md) - Detailed documentation for all cmdlets
- [Examples](examples/README.md) - Example scripts for common tasks
- [Guides](guides/README.md) - Comprehensive guides for various topics
## Requirements
- PowerShell 5.1 or PowerShell 7+
- .NET Framework 4.7.2 or .NET Core 2.0+
## Installation
### From PowerShell Gallery (Recommended)
```powershell
# Install from PowerShell Gallery
Install-Module -Name PSProxmox -Scope CurrentUser
```
### Manual Installation
```powershell
# Clone the repository
git clone https://github.com/Grace-Solutions/PSProxmox.git
cd PSProxmox
# Build the module
.\Scripts\build.ps1
# Install the module
.\Scripts\Install-PSProxmox.ps1
```
## Quick Start
```powershell
# 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:
```powershell
Get-Help Connect-ProxmoxServer -Full
```
2. Browse the [Cmdlet Reference](cmdlets/README.md) for detailed documentation on all cmdlets.
3. Check the [Examples](examples/README.md) for example scripts for common tasks.
4. Read the [Guides](guides/README.md) for comprehensive guides on various topics.
## Development
### Building the Module
To build the module from source:
```powershell
# 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.