You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

80 lines
1.8 KiB

terraform {
required_providers {
proxmox = {
source = "telmate/proxmox"
version = "2.9.11"
}
}
}
provider "proxmox" {
pm_api_url = "https://joseph.djpianalto.com/api2/json"
pm_api_token_id = "terraform@pam!terraform_api_token"
pm_api_token_secret = var.pm_api_token_secret
pm_tls_insecure = false
}
resource "proxmox_vm_qemu" "kubernetes_cluster" {
for_each = var.vms
name = each.value.name
vmid = each.key
target_node = each.value.node
clone = var.template_name
agent = 1
os_type = "linux"
cores = each.value.cores
sockets = 1
cpu = "host"
memory = each.value.memory
scsihw = "virtio-scsi-pci"
bootdisk = "scsi0"
disk {
slot = 0
size = each.value.disk
type = "scsi"
storage = "${each.value.node}_vm_store"
}
network {
model = "virtio"
bridge = "vmbr0"
}
lifecycle {
ignore_changes = [
network,
]
}
ipconfig0 = "ip=${each.value.ip}/16,gw=10.0.0.254"
sshkeys = <<EOF
${var.ssh_key}
EOF
ciuser = "ansible"
cipassword = var.ansible_password
searchdomain = "local"
nameserver = "10.0.0.252"
provisioner "remote-exec" {
inline = ["echo Hello World!; sleep 10"]
connection {
host = each.value.ip
type = "ssh"
user = "ansible"
private_key = file(var.private_key_file)
}
}
provisioner "local-exec" {
command = "ansible-playbook --vault-pass-file /home/dustyp/ansible_vault_pass --limit ${each.value.ip}, -i /home/dustyp/code/Ansible/basic_setup/inventory.yml /home/dustyp/code/Ansible/basic_setup/main.yml"
}
provisioner "local-exec" {
command = "ansible-playbook -i ${each.value.ip}, kubernetes_playbook.yml"
}
}