76 lines
1.4 KiB
HCL

terraform {
required_providers {
proxmox = {
source = "bpg/proxmox"
version = "0.98.1"
}
local = {
source = "hashicorp/local"
version = "2.7.0"
}
random = {
source = "hashicorp/random"
version = "3.8.1"
}
tls = {
source = "hashicorp/tls"
version = "4.2.1"
}
}
}
provider "proxmox" {
endpoint = var.proxmox_endpoint
api_token = "${var.proxmox_token_id}=${var.proxmox_token_secret}"
insecure = true
}
provider "local" {}
provider "random" {}
provider "tls" {}
data "proxmox_virtual_environment_version" "current" {}
output "proxmox_version" {
value = data.proxmox_virtual_environment_version.current.version
}
resource "proxmox_virtual_environment_vm" "node1" {
vm_id = var.vm_id
name = var.vm_name
node_name = "px" # имя ноды Proxmox
on_boot = true
clone {
vm_id = var.template_id
full = true
}
# Cloud Init ✦ пользователь, ssh-ключ, сеть
initialization {
datastore_id = var.datastore_vm
user_account {
username = var.cloudinit_user
keys = [ var.ssh_public_key ]
}
ip_config {
ipv4 {
address = "dhcp"
}
}
}
network_device {
bridge = "vmbr1"
}
agent {
enabled = true
}
}
output "vm_ipv4" {
value = proxmox_virtual_environment_vm.node1.ipv4_addresses
}