diff --git a/proxmox/terraform/common.tf b/proxmox/terraform/common.tf new file mode 100644 index 0000000..7fd9b77 --- /dev/null +++ b/proxmox/terraform/common.tf @@ -0,0 +1,11 @@ +locals { + config = { + dns = var.dns + domain = "internal.softwareheritage.org" + puppet_environment = "production" + puppet_master = var.puppet_master + gateway_ip = "192.168.100.1" + user_admin = var.user_admin + user_admin_ssh_public_key = var.user_admin_ssh_public_key + } +} diff --git a/proxmox/terraform/kelvingrove.tf b/proxmox/terraform/kelvingrove.tf index 8006a75..bc069e1 100644 --- a/proxmox/terraform/kelvingrove.tf +++ b/proxmox/terraform/kelvingrove.tf @@ -1,30 +1,20 @@ module "kelvingrove" { source = "./modules/node" - config = { - dns = var.dns - domain = "internal.softwareheritage.org" - puppet_environment = "production" - puppet_master = var.puppet_master - gateway_ip = "192.168.100.1" - user_admin = var.user_admin - user_admin_ssh_public_key = var.user_admin_ssh_public_key - } + config = local.config hostname = "kelvingrove" description = "Keycloak server" hypervisor = "hypervisor3" vmid = 123 cores = "4" memory = "8192" numa = true balloon = 0 - network = { + networks = [{ + id = 0 ip = "192.168.100.106" + gateway = local.config["gateway_ip"] macaddr = "72:55:5E:58:01:0B" bridge = "vmbr0" - } - storage = { - location = "proxmox" - size = "32G" - } + }] } diff --git a/proxmox/terraform/terraform.tfstate b/proxmox/terraform/terraform.tfstate new file mode 100644 index 0000000..ade33a8 --- /dev/null +++ b/proxmox/terraform/terraform.tfstate @@ -0,0 +1,425 @@ +{ + "version": 4, + "terraform_version": "0.13.4", + "serial": 104, + "lineage": "e2912de8-415d-4c35-8ee5-757008306227", + "outputs": {}, + "resources": [ + { + "module": "module.kelvingrove", + "mode": "managed", + "type": "proxmox_vm_qemu", + "name": "node", + "provider": "provider[\"local/telmate/proxmox\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "agent": 0, + "balloon": 0, + "bios": "seabios", + "boot": "c", + "bootdisk": "virtio0", + "bridge": "", + "ci_wait": null, + "cicustom": "", + "cipassword": "", + "ciuser": "root", + "clone": "template-debian-10", + "clone_wait": 15, + "cores": 4, + "cpu": "host", + "desc": "Keycloak server", + "disk": [ + { + "backup": false, + "cache": "none", + "discard": "", + "format": "raw", + "id": 0, + "iothread": false, + "mbps": 0, + "mbps_rd": 0, + "mbps_rd_max": 0, + "mbps_wr": 0, + "mbps_wr_max": 0, + "replicate": false, + "size": "32G", + "ssd": false, + "storage": "proxmox", + "storage_type": "cephfs", + "type": "virtio" + } + ], + "disk_gb": 0, + "force_create": false, + "full_clone": false, + "hastate": "", + "hotplug": "network,disk,usb", + "id": "hypervisor3/qemu/123", + "ipconfig0": "ip=192.168.100.106/24,gw=192.168.100.1", + "ipconfig1": "", + "ipconfig2": "", + "iso": null, + "kvm": true, + "mac": "", + "memory": 8192, + "name": "kelvingrove", + "nameserver": "192.168.100.29", + "network": [ + { + "bridge": "vmbr0", + "firewall": false, + "id": 0, + "link_down": false, + "macaddr": "72:55:5E:58:01:0B", + "model": "virtio", + "queues": -1, + "rate": -1, + "tag": -1 + } + ], + "nic": "", + "numa": true, + "onboot": true, + "os_network_config": null, + "os_type": "cloud-init", + "pool": "", + "preprovision": true, + "qemu_os": "other", + "scsihw": "virtio-scsi-pci", + "searchdomain": "internal.softwareheritage.org", + "serial": [], + "sockets": 1, + "ssh_forward_ip": null, + "ssh_host": null, + "ssh_port": null, + "ssh_private_key": null, + "ssh_user": "root", + "sshkeys": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDVKCfpeIMg7GS3Pk03ZAcBWAeDZ+AvWk2k/pPY0z8MJ3YAbqZkRtSK7yaDgJV6Gro7nn/TxdJLo2jEzzWvlC8d8AEzhZPy5Z/qfVVjqBTBM4H5+e+TItAHFfaY5+0WvIahxcfsfaq70MWfpJhszAah3ThJ4mqzYaw+dkr42+a7Gx3Ygpb/m2dpnFnxvXdcuAJYStmHKU5AWGWWM+Fm50/fdMqUfNd8MbKhkJt5ihXQmZWMOt7ls4N8i5NZWnS9YSWow8X/ENOEqCRN9TyRkc+pPS0w9DNi0BCsWvSRJOkyvQ6caEnKWlNoywCmM1AlIQD3k4RUgRWe0vqg/UKPpH3Z root@terraform\n\n\n", + "storage": "", + "storage_type": "", + "target_node": "hypervisor3", + "vcpus": 0, + "vga": [], + "vlan": -1, + "vmid": null + }, + "private": "eyJzY2hlbWFfdmVyc2lvbiI6IjAifQ==" + } + ] + }, + { + "module": "module.zookeeper1", + "mode": "managed", + "type": "proxmox_vm_qemu", + "name": "node", + "provider": "provider[\"local/telmate/proxmox\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "agent": 0, + "balloon": 0, + "bios": "seabios", + "boot": "c", + "bootdisk": "virtio0", + "bridge": "", + "ci_wait": null, + "cicustom": "", + "cipassword": "", + "ciuser": "root", + "clone": "template-debian-10", + "clone_wait": 15, + "cores": 2, + "cpu": "host", + "desc": "Zookeeper server", + "disk": [ + { + "backup": false, + "cache": "none", + "discard": "", + "format": "raw", + "id": 0, + "iothread": false, + "mbps": 0, + "mbps_rd": 0, + "mbps_rd_max": 0, + "mbps_wr": 0, + "mbps_wr_max": 0, + "replicate": false, + "size": "32G", + "ssd": false, + "storage": "proxmox", + "storage_type": "cephfs", + "type": "virtio" + } + ], + "disk_gb": 0, + "force_create": false, + "full_clone": false, + "hastate": "", + "hotplug": "network,disk,usb", + "id": "hypervisor3/qemu/125", + "ipconfig0": "ip=192.168.100.131/24,gw=192.168.100.1", + "ipconfig1": "", + "ipconfig2": "", + "iso": null, + "kvm": true, + "mac": "", + "memory": 4096, + "name": "zookeeper1", + "nameserver": "192.168.100.29", + "network": [ + { + "bridge": "vmbr0", + "firewall": false, + "id": 0, + "link_down": false, + "macaddr": "9A:BF:FB:6D:49:27", + "model": "virtio", + "queues": -1, + "rate": -1, + "tag": -1 + } + ], + "nic": "", + "numa": false, + "onboot": true, + "os_network_config": null, + "os_type": "cloud-init", + "pool": "", + "preprovision": true, + "qemu_os": "other", + "scsihw": "virtio-scsi-pci", + "searchdomain": "internal.softwareheritage.org", + "serial": [], + "sockets": 1, + "ssh_forward_ip": null, + "ssh_host": null, + "ssh_port": null, + "ssh_private_key": null, + "ssh_user": "root", + "sshkeys": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDVKCfpeIMg7GS3Pk03ZAcBWAeDZ+AvWk2k/pPY0z8MJ3YAbqZkRtSK7yaDgJV6Gro7nn/TxdJLo2jEzzWvlC8d8AEzhZPy5Z/qfVVjqBTBM4H5+e+TItAHFfaY5+0WvIahxcfsfaq70MWfpJhszAah3ThJ4mqzYaw+dkr42+a7Gx3Ygpb/m2dpnFnxvXdcuAJYStmHKU5AWGWWM+Fm50/fdMqUfNd8MbKhkJt5ihXQmZWMOt7ls4N8i5NZWnS9YSWow8X/ENOEqCRN9TyRkc+pPS0w9DNi0BCsWvSRJOkyvQ6caEnKWlNoywCmM1AlIQD3k4RUgRWe0vqg/UKPpH3Z root@terraform\n", + "storage": "", + "storage_type": "", + "target_node": "hypervisor3", + "vcpus": 0, + "vga": [], + "vlan": -1, + "vmid": null + }, + "private": "eyJzY2hlbWFfdmVyc2lvbiI6IjAifQ==" + } + ] + }, + { + "module": "module.zookeeper2", + "mode": "managed", + "type": "proxmox_vm_qemu", + "name": "node", + "provider": "provider[\"local/telmate/proxmox\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "agent": 0, + "balloon": 0, + "bios": "seabios", + "boot": "c", + "bootdisk": "virtio0", + "bridge": "", + "ci_wait": null, + "cicustom": "", + "cipassword": "", + "ciuser": "root", + "clone": "template-debian-10", + "clone_wait": 15, + "cores": 2, + "cpu": "host", + "desc": "Zookeeper server", + "disk": [ + { + "backup": false, + "cache": "none", + "discard": "", + "format": "raw", + "id": 0, + "iothread": false, + "mbps": 0, + "mbps_rd": 0, + "mbps_rd_max": 0, + "mbps_wr": 0, + "mbps_wr_max": 0, + "replicate": false, + "size": "32G", + "ssd": false, + "storage": "proxmox", + "storage_type": "cephfs", + "type": "virtio" + } + ], + "disk_gb": 0, + "force_create": false, + "full_clone": false, + "hastate": "", + "hotplug": "network,disk,usb", + "id": "branly/qemu/124", + "ipconfig0": "ip=192.168.100.132/24,gw=192.168.100.1", + "ipconfig1": "", + "ipconfig2": "", + "iso": null, + "kvm": true, + "mac": "", + "memory": 4096, + "name": "zookeeper2", + "nameserver": "192.168.100.29", + "network": [ + { + "bridge": "vmbr0", + "firewall": false, + "id": 0, + "link_down": false, + "macaddr": "66:B0:72:A8:70:5C", + "model": "virtio", + "queues": -1, + "rate": -1, + "tag": -1 + } + ], + "nic": "", + "numa": false, + "onboot": true, + "os_network_config": null, + "os_type": "cloud-init", + "pool": "", + "preprovision": true, + "qemu_os": "other", + "scsihw": "virtio-scsi-pci", + "searchdomain": "internal.softwareheritage.org", + "serial": [], + "sockets": 1, + "ssh_forward_ip": null, + "ssh_host": null, + "ssh_port": null, + "ssh_private_key": null, + "ssh_user": "root", + "sshkeys": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDVKCfpeIMg7GS3Pk03ZAcBWAeDZ+AvWk2k/pPY0z8MJ3YAbqZkRtSK7yaDgJV6Gro7nn/TxdJLo2jEzzWvlC8d8AEzhZPy5Z/qfVVjqBTBM4H5+e+TItAHFfaY5+0WvIahxcfsfaq70MWfpJhszAah3ThJ4mqzYaw+dkr42+a7Gx3Ygpb/m2dpnFnxvXdcuAJYStmHKU5AWGWWM+Fm50/fdMqUfNd8MbKhkJt5ihXQmZWMOt7ls4N8i5NZWnS9YSWow8X/ENOEqCRN9TyRkc+pPS0w9DNi0BCsWvSRJOkyvQ6caEnKWlNoywCmM1AlIQD3k4RUgRWe0vqg/UKPpH3Z root@terraform\n", + "storage": "", + "storage_type": "", + "target_node": "branly", + "vcpus": 0, + "vga": [], + "vlan": -1, + "vmid": null + }, + "private": "eyJzY2hlbWFfdmVyc2lvbiI6IjAifQ==" + } + ] + }, + { + "module": "module.zookeeper3", + "mode": "managed", + "type": "proxmox_vm_qemu", + "name": "node", + "provider": "provider[\"local/telmate/proxmox\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "agent": 0, + "balloon": 0, + "bios": "seabios", + "boot": "c", + "bootdisk": "virtio0", + "bridge": "", + "ci_wait": null, + "cicustom": "", + "cipassword": "", + "ciuser": "root", + "clone": "template-debian-10", + "clone_wait": 15, + "cores": 2, + "cpu": "host", + "desc": "Zookeeper server", + "disk": [ + { + "backup": false, + "cache": "none", + "discard": "", + "format": "raw", + "id": 0, + "iothread": false, + "mbps": 0, + "mbps_rd": 0, + "mbps_rd_max": 0, + "mbps_wr": 0, + "mbps_wr_max": 0, + "replicate": false, + "size": "32G", + "ssd": false, + "storage": "proxmox", + "storage_type": "cephfs", + "type": "virtio" + } + ], + "disk_gb": 0, + "force_create": false, + "full_clone": false, + "hastate": "", + "hotplug": "network,disk,usb", + "id": "beaubourg/qemu/102", + "ipconfig0": "ip=192.168.100.133/24,gw=192.168.100.1", + "ipconfig1": "", + "ipconfig2": "", + "iso": null, + "kvm": true, + "mac": "", + "memory": 4096, + "name": "zookeeper3", + "nameserver": "192.168.100.29", + "network": [ + { + "bridge": "vmbr0", + "firewall": false, + "id": 0, + "link_down": false, + "macaddr": "E2:7C:D7:6A:F6:B0", + "model": "virtio", + "queues": -1, + "rate": -1, + "tag": -1 + } + ], + "nic": "", + "numa": false, + "onboot": true, + "os_network_config": null, + "os_type": "cloud-init", + "pool": "", + "preprovision": true, + "qemu_os": "other", + "scsihw": "virtio-scsi-pci", + "searchdomain": "internal.softwareheritage.org", + "serial": [], + "sockets": 1, + "ssh_forward_ip": null, + "ssh_host": null, + "ssh_port": null, + "ssh_private_key": null, + "ssh_user": "root", + "sshkeys": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDVKCfpeIMg7GS3Pk03ZAcBWAeDZ+AvWk2k/pPY0z8MJ3YAbqZkRtSK7yaDgJV6Gro7nn/TxdJLo2jEzzWvlC8d8AEzhZPy5Z/qfVVjqBTBM4H5+e+TItAHFfaY5+0WvIahxcfsfaq70MWfpJhszAah3ThJ4mqzYaw+dkr42+a7Gx3Ygpb/m2dpnFnxvXdcuAJYStmHKU5AWGWWM+Fm50/fdMqUfNd8MbKhkJt5ihXQmZWMOt7ls4N8i5NZWnS9YSWow8X/ENOEqCRN9TyRkc+pPS0w9DNi0BCsWvSRJOkyvQ6caEnKWlNoywCmM1AlIQD3k4RUgRWe0vqg/UKPpH3Z root@terraform\n", + "storage": "", + "storage_type": "", + "target_node": "beaubourg", + "vcpus": 0, + "vga": [], + "vlan": -1, + "vmid": null + }, + "private": "eyJzY2hlbWFfdmVyc2lvbiI6IjAifQ==" + } + ] + } + ] +} diff --git a/proxmox/terraform/zookeeper.tf b/proxmox/terraform/zookeeper.tf index 5b8718a..ae53817 100644 --- a/proxmox/terraform/zookeeper.tf +++ b/proxmox/terraform/zookeeper.tf @@ -1,83 +1,56 @@ module "zookeeper1" { source = "./modules/node" - config = { - dns = var.dns - domain = "internal.softwareheritage.org" - puppet_environment = "production" - puppet_master = var.puppet_master - gateway_ip = "192.168.100.1" - user_admin = var.user_admin - user_admin_ssh_public_key = var.user_admin_ssh_public_key - } + config = local.config hostname = "zookeeper1" description = "Zookeeper server" hypervisor = "hypervisor3" vmid = 125 cores = "2" memory = "4096" - network = { + networks = [{ + id = 0 ip = "192.168.100.131" + gateway = local.config["gateway_ip"] + macaddr = "9A:BF:FB:6D:49:27" bridge = "vmbr0" - } - storage = { - location = "proxmox" - size = "32G" - } + }] } module "zookeeper2" { source = "./modules/node" - config = { - dns = var.dns - domain = "internal.softwareheritage.org" - puppet_environment = "production" - puppet_master = var.puppet_master - gateway_ip = "192.168.100.1" - user_admin = var.user_admin - user_admin_ssh_public_key = var.user_admin_ssh_public_key - } + config = local.config hostname = "zookeeper2" description = "Zookeeper server" hypervisor = "branly" vmid = 124 cores = "2" memory = "4096" - network = { + networks = [{ + id = 0 ip = "192.168.100.132" + gateway = local.config["gateway_ip"] + macaddr = "66:B0:72:A8:70:5C" bridge = "vmbr0" - } - storage = { - location = "proxmox" - size = "32G" - } + }] } module "zookeeper3" { source = "./modules/node" - config = { - dns = var.dns - domain = "internal.softwareheritage.org" - puppet_environment = "production" - puppet_master = var.puppet_master - gateway_ip = "192.168.100.1" - user_admin = var.user_admin - user_admin_ssh_public_key = var.user_admin_ssh_public_key - } + config = local.config hostname = "zookeeper3" description = "Zookeeper server" hypervisor = "beaubourg" - vmid = 101 + vmid = 102 cores = "2" memory = "4096" - network = { + networks = [{ + id = 0 ip = "192.168.100.133" + gateway = local.config["gateway_ip"] + macaddr = "E2:7C:D7:6A:F6:B0" bridge = "vmbr0" - } - storage = { - location = "proxmox" - size = "32G" - } + }] }