Proxmox Virtual Environment (Proxmox VE) v6.15.3 published on Monday, Nov 11, 2024 by Daniel Muehlbachler-Pietrzykowski
Proxmox Virtual Environment (Proxmox VE)
Proxmox Virtual Environment (Proxmox VE) v6.15.3 published on Monday, Nov 11, 2024 by Daniel Muehlbachler-Pietrzykowski
The Proxmox Virtual Environment (Proxmox VE) provider for Pulumi can be used to provision virtual machines and containers using Proxmox VE.
Example
const proxmox = require("@muhlba91/pulumi-proxmoxve")
const virtualMachine = new proxmox.vm.VirtualMachine('vm', {
nodeName: 'pve1',
agent: {
enabled: false, // toggles checking for ip addresses through qemu-guest-agent
trim: true,
type: 'virtio',
},
bios: 'seabios',
cpu: {
cores: 1,
sockets: 1,
},
clone: {
nodeName: 'pve1',
vmId: 9000,
full: true,
},
disks: [
{
interface: 'scsi0',
datastoreId: 'local-lvm',
size: 32,
fileFormat: 'qcow2',
},
],
memory: {
dedicated: 1024,
},
name: 'proxmox-vm',
networkDevices: [
{
bridge: 'vmbr0',
model: 'virtio',
},
],
onBoot: true,
operatingSystem: {
type: 'l26',
},
initialization: {
type: 'nocloud',
datastoreId: 'local-lvm',
dns: {
domain: 'example.com',
server: '1.1.1.1 1.0.0.1',
},
ipConfigs: [
{
ipv4: {
address: '10.0.0.10/24',
gateway: '10.0.0.1',
},
ipv6: {
address: 'fd91:0812:a17f:6194::10/64',
gateway: 'fd91:0812:a17f:6194::1',
},
},
],
userAccount: {
username: 'proxmox',
password: 'password',
keys: ['SSH_PUBLIC_KEY'],
},
},
})
import * as proxmox from "@muhlba91/pulumi-proxmoxve";
const virtualMachine = new proxmox.vm.VirtualMachine('vm', {
nodeName: 'pve1',
agent: {
enabled: false, // toggles checking for ip addresses through qemu-guest-agent
trim: true,
type: 'virtio',
},
bios: 'seabios',
cpu: {
cores: 1,
sockets: 1,
},
clone: {
nodeName: 'pve1',
vmId: 9000,
full: true,
},
disks: [
{
interface: 'scsi0',
datastoreId: 'local-lvm',
size: 32,
fileFormat: 'qcow2',
},
],
memory: {
dedicated: 1024,
},
name: 'proxmox-vm',
networkDevices: [
{
bridge: 'vmbr0',
model: 'virtio',
},
],
onBoot: true,
operatingSystem: {
type: 'l26',
},
initialization: {
type: 'nocloud',
datastoreId: 'local-lvm',
dns: {
domain: 'example.com',
server: '1.1.1.1 1.0.0.1',
},
ipConfigs: [
{
ipv4: {
address: '10.0.0.10/24',
gateway: '10.0.0.1',
},
ipv6: {
address: 'fd91:0812:a17f:6194::10/64',
gateway: 'fd91:0812:a17f:6194::1',
},
},
],
userAccount: {
username: 'proxmox',
password: 'password',
keys: ['SSH_PUBLIC_KEY'],
},
},
})
import pulumi_proxmoxve as proxmox
virtual_machine = proxmox.vm.VirtualMachine(
resource_name="vm",
node_name="pve1",
agent=proxmox.vm.VirtualMachineAgentArgs(
enabled=False, # toggles checking for ip addresses through qemu-guest-agent
trim=True,
type="virtio"
),
bios="seabios",
cpu=proxmox.vm.VirtualMachineCpuArgs(
cores=1,
sockets=1
),
clone=proxmox.vm.VirtualMachineCloneArgs(
node_name="pve1",
vm_id=9000,
full=True
),
disks=[
proxmox.vm.VirtualMachineDiskArgs(
interface="scsi0",
datastore_id="local-lvm",
size=32,
file_format="qcow2"
)
],
memory=proxmox.vm.VirtualMachineMemoryArgs(
dedicated=1024
),
name="proxmox-vm",
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",
dns=proxmox.vm.VirtualMachineInitializationDnsArgs(
domain="example.com",
server="1.1.1.1 1.0.0.1"
),
ip_configs=[
proxmox.vm.VirtualMachineInitializationIpConfigArgs(
ipv4=proxmox.vm.VirtualMachineInitializationIpConfigIpv4Args(
address="10.0.0.10/24",
gateway="10.0.0.1"
),
ipv6=proxmox.vm.VirtualMachineInitializationIpConfigIpv6Args(
address="fd91:0812:a17f:6194::10/64",
gateway="fd91:0812:a17f:6194::1"
)
)
],
user_account=proxmox.vm.VirtualMachineInitializationUserAccountArgs(
username="proxmox",
password="password",
keys=["SSH_PUBLIC_KEY"]
)
)
)
using System.Collections.Generic;
using System.Threading.Tasks;
using Pulumi;
using Pulumi.ProxmoxVE.VM;
using Pulumi.ProxmoxVE.VM.Inputs;
class Program
{
static Task Main() =>
Deployment.Run(() => {
var virtualMachine = new VirtualMachine("vm", new VirtualMachineArgs
{
NodeName="pve1",
Agent=new VirtualMachineAgentArgs{
enabled=false, // toggles checking for ip addresses through qemu-guest-agent
trim=true,
type="virtio"
},
Bios="seabios",
Cpu=new VirtualMachineCpuArgs{
Cores=1,
Sockets=1
},
Clone=new VirtualMachineCloneArgs{
NodeName="pve1",
VmId=9000,
Full=true
},
Disks: [
new VirtualMachineDiskArgs{
Interface="scsi0",
DatastoreId="local-lvm",
Size=32,
FileFormat="qcow2"
}
],
Memory: new VirtualMachineMemoryArgs{
Dedicated=1024
},
Name="proxmox-vm",
NetworkDevices: [
new VirtualMachineNetworkDeviceArgs{
Bridge="vmbr0",
Model="virtio"
}
],
OnBoot=true,
OperatingSystem=new VirtualMachineOperatingSystemArgs{
type="l26"
},
Initialization=new VirtualMachineInitializationArgs{
Type="nocloud",
DatastoreId="local-lvm",
Dns: new VirtualMachineInitializationDnsArgs{
Domain="example.com",
Server="1.1.1.1 1.0.0.1"
},
IpConfigs: [
new VirtualMachineInitializationIpConfigArgs{
Ipv4=new VirtualMachineInitializationIpConfigIpv4Args{
Address="10.0.0.10/24",
Gateway="10.0.0.1"
},
Ipv6=new VirtualMachineInitializationIpConfigIpv6Args{
Address="fd91:0812:a17f:6194::10/64",
Gateway="fd91:0812:a17f:6194::1"
}
}
],
UserAccount: new VirtualMachineInitializationUserAccountArgs{
Username="proxmox",
Password="password",
Keys=["SSH_PUBLIC_KEY"]
}
}
});
});
}
Proxmox Virtual Environment (Proxmox VE) v6.15.3 published on Monday, Nov 11, 2024 by Daniel Muehlbachler-Pietrzykowski