68 lines
2.0 KiB
Python
68 lines
2.0 KiB
Python
|
"""A Pulumi-based infrastructure with Proxmox VE and Python"""
|
||
|
|
||
|
import pulumi
|
||
|
import pulumi_proxmoxve as proxmox
|
||
|
|
||
|
config = pulumi.Config()
|
||
|
|
||
|
provider = proxmox.Provider("proxmoxve",
|
||
|
virtual_environment = {
|
||
|
"endpoint": config.endpoint,
|
||
|
"insecure": True,
|
||
|
"username": "root@pam",
|
||
|
"password": config.pvepassword
|
||
|
}
|
||
|
)
|
||
|
|
||
|
vm = proxmox.vm.VirtualMachine("vm",
|
||
|
name = "virtual-machine",
|
||
|
node_name = config.node_name,
|
||
|
agent = proxmox.vm.VirtualMachineAgentArgs(
|
||
|
enabled = True,
|
||
|
trim = True,
|
||
|
type = "virtio"
|
||
|
),
|
||
|
bios = "seabios",
|
||
|
cpu = proxmox.vm.VirtualMachineCpuArgs(
|
||
|
cores = 1,
|
||
|
sockets = 1
|
||
|
),
|
||
|
memory = proxmox.vm.VirtualMachineMemoryArgs(
|
||
|
dedicated = 2048
|
||
|
),
|
||
|
clone = proxmox.vm.VirtualMachineCloneArgs(
|
||
|
node_name = config.node_name,
|
||
|
datastore_id = "local-lvm",
|
||
|
size = 20,
|
||
|
file_format = "qcow2"
|
||
|
),
|
||
|
network_devices = [
|
||
|
proxmox.vm.VirtualMachineNetworkDeviceArgs(
|
||
|
bridge = "vmbr0",
|
||
|
model = "virtio"
|
||
|
)
|
||
|
],
|
||
|
on_boot = True,
|
||
|
operating_system = proxmox.vm.VirtualMachineOperatingSystemArgs(
|
||
|
type = "l26"
|
||
|
),
|
||
|
initialization = proxmox.vm.VirtualMachineInitializationArgs(
|
||
|
type = "nocloud",
|
||
|
datastore_id = "local-lvm",
|
||
|
user_account = proxmox.vm.VirtualMachineInitializationUserAccountArgs(
|
||
|
username = "syntaxerrormmm",
|
||
|
password = "cicciopasticcio",
|
||
|
keys = [
|
||
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFioHkaV1NhX6NCqsJakJw8EVBOcDHm1MEbpY499CPtG syntaxerrormmm@fisso",
|
||
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILu91hBh8pNRt4eE1pug0Y4jCHZDCcMJ+vj3CiF5EQHV syntaxerrormmm@syntaxxps",
|
||
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIP/hn/0xn6DRS2B0paFzDQRakupgTQQ5hitQhqOfWcqz syntaxerrormmm@microbo"
|
||
|
]
|
||
|
)
|
||
|
),
|
||
|
opts = pulumi.ResourceOptions(
|
||
|
provider = provider
|
||
|
)
|
||
|
)
|
||
|
|
||
|
pulumi.export("ip", vm.ipv4_address)
|