From 8ddbc8a3fc72eb9ef1c403c70a9d321406b7578d Mon Sep 17 00:00:00 2001 From: vincent Date: Sun, 19 Jun 2022 16:04:32 +0200 Subject: [PATCH] add terragorm provissionning for VPS --- infra/output.tf | 13 +++++++++++++ infra/providers.tf | 12 ++++++++++++ infra/server.tf | 11 +++++++++++ infra/ssh.tf | 4 ++++ infra/variable.tf | 19 +++++++++++++++++++ 5 files changed, 59 insertions(+) create mode 100644 infra/output.tf create mode 100644 infra/providers.tf create mode 100644 infra/server.tf create mode 100644 infra/ssh.tf create mode 100644 infra/variable.tf diff --git a/infra/output.tf b/infra/output.tf new file mode 100644 index 0000000..f97f80a --- /dev/null +++ b/infra/output.tf @@ -0,0 +1,13 @@ +output "homelab_servers_status" { + value = { + for server in hcloud_server.HomeLab : + server.name => server.status + } +} + +output "homelab_servers_ips" { + value = { + for server in hcloud_server.HomeLab : + server.name => server.ipv4_address + } +} diff --git a/infra/providers.tf b/infra/providers.tf new file mode 100644 index 0000000..acc625d --- /dev/null +++ b/infra/providers.tf @@ -0,0 +1,12 @@ +terraform { + required_providers { + hcloud = { + source = "hetznercloud/hcloud" + } + } + required_version = ">= 0.13" +} + +provider "hcloud" { + token = var.hcloud_token +} diff --git a/infra/server.tf b/infra/server.tf new file mode 100644 index 0000000..b49f937 --- /dev/null +++ b/infra/server.tf @@ -0,0 +1,11 @@ +resource "hcloud_server" "HomeLab" { + count = var.instances + name = "random" + image = var.os_type + server_type = var.server_type + location = var.location + ssh_keys = [hcloud_ssh_key.default.id] + labels = { + } + +} diff --git a/infra/ssh.tf b/infra/ssh.tf new file mode 100644 index 0000000..4cdecde --- /dev/null +++ b/infra/ssh.tf @@ -0,0 +1,4 @@ +resource "hcloud_ssh_key" "default" { + name = "hetzner_key" + public_key = file("~/.ssh/id_rsa.pub") +} diff --git a/infra/variable.tf b/infra/variable.tf new file mode 100644 index 0000000..0221671 --- /dev/null +++ b/infra/variable.tf @@ -0,0 +1,19 @@ +variable "hcloud_token" { + # default = +} + +variable "location" { + default = "hel1" +} +variable "instances" { + default = "1" +} + +variable "server_type" { + default = "cpx11" +} + +variable "os_type" { + default = "rocky-8" +} +