76 lines
1.4 KiB
HCL
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
|
|
}
|