Add Proxmox machines and Guacamole
parent
55c0c7f8cf
commit
1fc76b01ea
78
main.tf
78
main.tf
|
|
@ -12,6 +12,14 @@ terraform {
|
|||
source = "mrparkers/keycloak"
|
||||
version = "4.3.1"
|
||||
}
|
||||
proxmox = {
|
||||
source = "telmate/proxmox"
|
||||
version = "2.9.8"
|
||||
}
|
||||
guacamole = {
|
||||
source = "techBeck03/guacamole"
|
||||
version = "1.4.1"
|
||||
}
|
||||
}
|
||||
backend "kubernetes" {
|
||||
secret_suffix = "tfstate"
|
||||
|
|
@ -36,6 +44,19 @@ provider "keycloak" {
|
|||
url = "https://keycloak.${var.domain_suffix}"
|
||||
}
|
||||
|
||||
provider "guacamole" {
|
||||
url = "https://guacamole.${var.domain_suffix}/guacamole"
|
||||
token = var.guacamole_token
|
||||
data_source = var.guacamole_datasource
|
||||
}
|
||||
|
||||
provider "proxmox" {
|
||||
pm_api_url = var.proxmox_api_url
|
||||
pm_api_token_id = var.proxmox_token_id
|
||||
pm_api_token_secret = var.proxmox_token
|
||||
pm_tls_insecure = true
|
||||
}
|
||||
|
||||
resource "helm_release" "keycloak" {
|
||||
name = "keycloak"
|
||||
namespace = var.keycloak_namespace
|
||||
|
|
@ -374,3 +395,60 @@ service:
|
|||
EOT
|
||||
]
|
||||
}
|
||||
|
||||
resource "proxmox_vm_qemu" "vyos_router" {
|
||||
count = 3
|
||||
name = "vyos-${count.index + 1}" #count.index starts at 0, so + 1 means this VM will be named test-vm-1 in proxmox
|
||||
target_node = var.proxmox_host
|
||||
clone = var.vyos_template_name
|
||||
agent = 1
|
||||
os_type = "cloud-init"
|
||||
cores = 2
|
||||
sockets = 1
|
||||
cpu = "host"
|
||||
memory = 2048
|
||||
scsihw = "virtio-scsi-single"
|
||||
bootdisk = "scsi0"
|
||||
disk {
|
||||
slot = 0
|
||||
size = "10G"
|
||||
type = "scsi"
|
||||
storage = "NFS-BIG"
|
||||
iothread = 1
|
||||
}
|
||||
network {
|
||||
model = "virtio"
|
||||
bridge = "vmbr0"
|
||||
}
|
||||
network {
|
||||
model = "virtio"
|
||||
bridge = "TestNet1"
|
||||
}
|
||||
lifecycle {
|
||||
ignore_changes = [
|
||||
network,
|
||||
]
|
||||
}
|
||||
ipconfig0 = "ip=172.29.7.6${count.index + 1}/24,gw=172.29.7.1"
|
||||
sshkeys = <<EOF
|
||||
${var.ssh_key}
|
||||
EOF
|
||||
}
|
||||
|
||||
resource "guacamole_connection_group" "routers" {
|
||||
parent_identifier = "ROOT"
|
||||
name = "Routers"
|
||||
type = "organizational"
|
||||
}
|
||||
|
||||
|
||||
resource "guacamole_connection_ssh" "vyos_vms" {
|
||||
for_each = { for x in proxmox_vm_qemu.vyos_router: x.id => x }
|
||||
name = each.value.name
|
||||
parent_identifier = guacamole_connection_group.routers.identifier
|
||||
parameters {
|
||||
hostname = each.value.default_ipv4_address
|
||||
username = "vyos"
|
||||
private_key = var.ssh_private_key
|
||||
}
|
||||
}
|
||||
|
|
|
|||
35
vars.tf
35
vars.tf
|
|
@ -41,3 +41,38 @@ variable "influxdb_namespace" {
|
|||
variable "grafana_namespace" {
|
||||
default = "grafana"
|
||||
}
|
||||
|
||||
variable "keycloak_realm_display_name" {
|
||||
default = "Dan's IOMDC Cloud"
|
||||
}
|
||||
|
||||
variable "proxmox_token_id" {
|
||||
default = "dan@md1clv.im!terraform"
|
||||
}
|
||||
|
||||
variable "proxmox_api_url" {
|
||||
default = "https://172.29.7.12:8006/api2/json"
|
||||
}
|
||||
|
||||
variable "guacamole_datasource" {
|
||||
default = "mysql"
|
||||
}
|
||||
|
||||
variable "ssh_key" {
|
||||
default = <<-EOT
|
||||
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCxtXWfJ2r6vEQ481lOGSmnb7yJHyDS8qq0/8KRPr98Yri0Tn200RR/XHMAR3wR/mACoaYFoi9DOE1tR0lyUf/qYEcPnN7pRfnF5afOM51YBxlZ1n5osZ70/C23xpqML4Ru6KaYvziysZ2lWe4iNJqOJXjJcOVRnFIA2iD/UIDLZAe/6GNlam4FKn6y5qZm/bCuaQlJsc3SnZIcEQ8yuhSZVOgugZxSXFXvhOt/88HKcrgDm9XA7QXQ9GcgpJ2ZDdIlwy+Iz3cT4HcjTPpmX5yf95FfKN4EATyH2QqTarWRae2L5L5uJXTVKFllQXBw3KFaUK5oXQV35LpgtM94+77IpPFl/u6JTs9tlrnO/dIe9LoXjPphUj0GMioi9IFyOtpon5aksIuEkRLVc8JhNrTcGGsbkSSvlC6ejq7HkM6d+RnwILYqhcfXx+GevVF9a2gidRGupoLzDOYPlqMldGQKNh4ZyfMTF1cbAcDnxFNbYBMEG/mPAktJ4iwaTQqTeMs= dan@linux.fritz.box
|
||||
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDMA1vHkev3vcWnvtcg2VIzxUhNFx9BSKztnyJjXxJLbZs0h3dFB2hqilzKDNRjmt3R+Q1Ivdsis+UzUx4NywR0PYw1IWusLgoXGxV98GoYh9NV4DiqjOPpVqRs4iyUyl0VeMrqiWScllWD5aU+AAIQQp3Yclkprl0/6wxAt3nNTnMH0ksioItW4/6+KAl14Y+nfGlknJ4CEuaZ6sQ8Yw+SVZnxqkaJcy36R/DnF99uQVnAiyIQccmu18IKWUlJ6sgZ3VXL2SMjTk6DjLRkiV6KJua24bjhzEPWm3evutV6is3B0ziFAxvQghTFGIz5ZPH80MEd9LQ2w+uuPy0RFCizkwii308lsKs2/HAsK/gQvPkfApiojTO7XEhDWSPsNxR4OvuyRTno0TWQUtQRoSwk4+91+FhMwA4bdtzJRBdT0QhaXc+gB7nibk1T2/Biqj9dmulUotUdvrgwpBgs6wGsOvyLLyxCUDNYXNB9msayePMxO5AJ775y7ON6UbTDXAM= dan@guacamole.k8s.md1clv.im
|
||||
EOT
|
||||
}
|
||||
|
||||
variable "proxmox_host" {
|
||||
default = "px1"
|
||||
}
|
||||
|
||||
variable "template_name" {
|
||||
default = "ubuntu-2204-cloudinit-template"
|
||||
}
|
||||
|
||||
variable "vyos_template_name" {
|
||||
default = "vyos-1.5-rolling-202310010025-template"
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue