diff --git a/Doc/Sdi/CloudProvider/Terra/050CloudInitBasic/main.tf b/Doc/Sdi/CloudProvider/Terra/050CloudInitBasic/main.tf new file mode 100644 index 0000000000000000000000000000000000000000..e6d2dede54e6369b3bc9e92bdc982d72210bb3fe --- /dev/null +++ b/Doc/Sdi/CloudProvider/Terra/050CloudInitBasic/main.tf @@ -0,0 +1,27 @@ +terraform { + required_providers { + hcloud = { + source = "hetznercloud/hcloud" + } + } + required_version = ">= 0.13" +} + +provider "hcloud" { + token = var.hcloud_token +} + +resource "hcloud_ssh_key" "goik" { + name = "goik@hdm-stuttgart.de" + public_key = file("~/.ssh/id_ed25519.pub") +} + +resource "hcloud_server" "helloServer" { + name = "hello" + image = "debian-12" + server_type = "cx11" + location = "nbg1" + user_data = file("userData.yml") + ssh_keys = [hcloud_ssh_key.goik.id] + firewall_ids = [hcloud_firewall.wwwFw.id] +} diff --git a/Doc/Sdi/CloudProvider/Terra/050CloudInitBasic/network.tf b/Doc/Sdi/CloudProvider/Terra/050CloudInitBasic/network.tf new file mode 100644 index 0000000000000000000000000000000000000000..a17a78fffef217d429aa2c6500663f7fffdd401d --- /dev/null +++ b/Doc/Sdi/CloudProvider/Terra/050CloudInitBasic/network.tf @@ -0,0 +1,30 @@ +resource "hcloud_firewall" "wwwFw" { + name = "www-firewall" + rule { + direction = "in" + protocol = "tcp" + port = "22" + source_ips = [ + "0.0.0.0/0", + "::/0" + ] + } + rule { + direction = "in" + protocol = "tcp" + port = "80" + source_ips = [ + "0.0.0.0/0", + "::/0" + ] + } + rule { + direction = "in" + protocol = "tcp" + port = "443" + source_ips = [ + "0.0.0.0/0", + "::/0" + ] + } +} diff --git a/Doc/Sdi/CloudProvider/Terra/050CloudInitBasic/outputs.tf b/Doc/Sdi/CloudProvider/Terra/050CloudInitBasic/outputs.tf new file mode 100644 index 0000000000000000000000000000000000000000..fb93fbb76675741e01fb15116f25f1dc2376f9bd --- /dev/null +++ b/Doc/Sdi/CloudProvider/Terra/050CloudInitBasic/outputs.tf @@ -0,0 +1,9 @@ +output "hello_ip_addr" { + value = hcloud_server.helloServer.ipv4_address + description = "The server's IPv4 address" +} + +output "hello_datacenter" { + value = hcloud_server.helloServer.datacenter + description = "The server's datacenter" +} \ No newline at end of file diff --git a/Doc/Sdi/CloudProvider/Terra/050CloudInitBasic/secrets.auto.tfvars.template b/Doc/Sdi/CloudProvider/Terra/050CloudInitBasic/secrets.auto.tfvars.template new file mode 100644 index 0000000000000000000000000000000000000000..5929da087a27aa9b1d390187a3dd39a7ab347fc0 --- /dev/null +++ b/Doc/Sdi/CloudProvider/Terra/050CloudInitBasic/secrets.auto.tfvars.template @@ -0,0 +1 @@ +hcloud_token="your_api_token_goes_here" diff --git a/Doc/Sdi/CloudProvider/Terra/050CloudInitBasic/userData.yml b/Doc/Sdi/CloudProvider/Terra/050CloudInitBasic/userData.yml new file mode 100644 index 0000000000000000000000000000000000000000..89e3a181eff8ade929f93efbd0f4147dbef4f15d --- /dev/null +++ b/Doc/Sdi/CloudProvider/Terra/050CloudInitBasic/userData.yml @@ -0,0 +1,7 @@ +#cloud-config +packages: + - nginx +runcmd: + - systemctl enable nginx + - rm /var/www/html/* + - echo "Hello! I am Nginx @ $(curl -s ipinfo.io/ip)! This record added at $(date -u)." >>/var/www/html/index.html diff --git a/Doc/Sdi/CloudProvider/Terra/050CloudInitBasic/variables.tf b/Doc/Sdi/CloudProvider/Terra/050CloudInitBasic/variables.tf new file mode 100644 index 0000000000000000000000000000000000000000..3eefa6804960a042381853d0ed36d7936b7b5c9b --- /dev/null +++ b/Doc/Sdi/CloudProvider/Terra/050CloudInitBasic/variables.tf @@ -0,0 +1,4 @@ +variable "hcloud_token" { # See secret.auto.tfvars + nullable = false + sensitive = true +} \ No newline at end of file