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 *
import asyncio
def main():
kvm = await VirtualMachine.connect(
host="linux-server.lan",
uuid="c7c2f567-064f-464e-9843-1ed55c04f35e",
platform=HypervisorPlatform.KVM,
auth=("user", "123456")
)
kvm_name = await kvm.name()
hvm = await VirtualMachine.connect(
host="windows-server.lan",
uuid="37a6cee8-f6ce-48c4-a635-7145e8770cca",
platform=HypervisorPlatform.HYPERV,
auth=("user", "123456")
)
hvm_name = await hvm.name()
print(f"Virtual machine on Linux has name: {kvm_name}\nVirtual machine on Windows has name: {hvm_name}")
if __name__ == "__main__":
asyncio.run(main())
Get all VMs on particular hypervisor
from virt_wrapper import *
hypervisor = Hypervisor(
host="windows-server.lan",
platform=HypervisorPlatform.HYPERV,
auth=("user", "123456")
)
# OR
hypervisor = Hypervisor(
host="linux-server.lan",
platform=HypervisorPlatform.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.8.0.tar.gz
(15.8 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.8.0.tar.gz.
File metadata
- Download URL: virt_wrapper-0.8.0.tar.gz
- Upload date:
- Size: 15.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
144757ef1a7df5090e8d33b5730e458b1d8a103438751e0d4e3b55fb4dc046c0
|
|
| MD5 |
d5b29dfb85b61300b526ffb815879de1
|
|
| BLAKE2b-256 |
1e7567489837b2479ebdf08e3fbb4cc2d0ac246af643c93901bd9d1492693531
|
File details
Details for the file virt_wrapper-0.8.0-py3-none-any.whl.
File metadata
- Download URL: virt_wrapper-0.8.0-py3-none-any.whl
- Upload date:
- Size: 21.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d6762e0980cbf90ede1f2bf604a0bf578c810f1ff4ef9ceb6efa0fd40210ec7e
|
|
| MD5 |
0b4dc60e307e35a8be3c7b8c24127a68
|
|
| BLAKE2b-256 |
1f6f23b0ebff367387a9153bcbc1a1a8f9e7187269b3b210dab3b83375c72d23
|