Wrapper that was developed in order to manage libvirt virtual machines
Project description
Description
Python wrapper for managing virtual infrastructure based on Hyper-V or KVM (libvirt)
Example usage
Get access to particular VM by UUID
from virt_wrapper import *
kvm = VirtualMachine(
host="linux-server.lan",
uuid="c7c2f567-064f-464e-9843-1ed55c04f35e",
type=HypervisorType.KVM,
auth=("user", "123456")
)
hvm = VirtualMachine(
host="windows-server.lan",
uuid="37a6cee8-f6ce-48c4-a635-7145e8770cca",
type=HypervisorType.HYPERV,
auth=("user", "123456")
)
print(f"Virtual machine on Linux has name: {kvm.name()}\nVirtual machine on Windows has name: {hvm.name()}")
Get all VMs on particular hypervisor
from virt_wrapper import *
hypervisor = Hypervisor(
host="windows-server.lan",
type=HypervisorType.HYPERV,
auth=("user", "123456")
)
# OR
hypervisor = Hypervisor(
host="linux-server.lan",
type=HypervisorType.KVM,
auth=("user", "123456")
)
for vm in hypervisor.virtual_machines():
print(vm.name())
Requirements
KVM
- SSH-key must be imported on target server
- User must have full access to libvirt
usermod <your_user> -aG libvirt
systemctl restart libvirtd
Hyper-V
- User must have full access to Hyper-V
- WinRM must be enabled with this parameters
- HTTPS
- Basic auth
# Enables the WinRM service and sets up the HTTP listener
Enable-PSRemoting -Force
# Create HTTPS listener
$httpsParams = @{
ResourceURI = 'winrm/config/listener'
SelectorSet = @{
Transport = "HTTPS"
Address = "*"
}
ValueSet = @{
CertificateThumbprint = ""
Enabled = $true
}
}
New-WSManInstance @httpsParams
# Enable basic auth
Set-Item -Path WSMan:\localhost\Service\Auth\Basic -Value $true
# Opens port 5986 for all profiles
$firewallParams = @{
Action = 'Allow'
Description = 'Inbound rule for Windows Remote Management via WS-Management. [TCP 5986]'
Direction = 'Inbound'
DisplayName = 'Windows Remote Management (HTTPS-In)'
LocalPort = 5986
Profile = 'Any'
Protocol = 'TCP'
}
New-NetFirewallRule @firewallParams
Available functions:
- Managing snapshots
- Managing virtual disks
- Managing networks
- Getting info about VM (state, description, guest OS, etc.)
- Controling VM (run, shutdown, pause, etc)
- Export/Import virtual machines
- Migrating
- Cloning
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
virt_wrapper-0.4.0.tar.gz
(15.0 kB
view details)
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 virt_wrapper-0.4.0.tar.gz.
File metadata
- Download URL: virt_wrapper-0.4.0.tar.gz
- Upload date:
- Size: 15.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
24e524680c3f7d9bd8d9cca08fb5d6cee95d9df90d00d4194b6f22c55dbdcfa7
|
|
| MD5 |
fbbe3b83f781398256e74a70a2a93b07
|
|
| BLAKE2b-256 |
f96fca322ff75e4a38944ac22d379e05ee95b6b6f10a4edf8954deaa7c560695
|
File details
Details for the file virt_wrapper-0.4.0-py3-none-any.whl.
File metadata
- Download URL: virt_wrapper-0.4.0-py3-none-any.whl
- Upload date:
- Size: 18.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
609382481bebc9a5accf105642c30d6d639d5cfc8e1eef3e03426389ef064c47
|
|
| MD5 |
eb92d8e15f685327375b2736b5b06578
|
|
| BLAKE2b-256 |
75a66e2f5aba016c0f90f022ffdcd96586be9ea5901b1d816eda16046739fbd4
|