diff --git a/terraform/cloud-init/hetzner-cloud.yml b/terraform/cloud-init/hetzner-cloud.yml new file mode 100644 index 0000000..de7dc84 --- /dev/null +++ b/terraform/cloud-init/hetzner-cloud.yml @@ -0,0 +1,33 @@ +#cloud-config +users: + - name: soeren + groups: users, admin + sudo: ALL=(ALL) NOPASSWD:ALL + shell: /bin/bash + ssh_import_id: + - gh:kekskurse + - name: cloud + groups: users, admin + sudo: ALL=(ALL) NOPASSWD:ALL + shell: /bin/bash + ssh_import_id: + - gh:kekskurse +packages: + - ufw +package_update: true +package_upgrade: true +runcmd: + - ufw allow 22522 + - ufw enable + - sed -i -e '/^\(#\|\)PermitRootLogin/s/^.*$/PermitRootLogin no/' /etc/ssh/sshd_config + - sed -i -e '/^\(#\|\)PasswordAuthentication/s/^.*$/PasswordAuthentication no/' /etc/ssh/sshd_config + - sed -i -e '/^\(#\|\)KbdInteractiveAuthentication/s/^.*$/KbdInteractiveAuthentication no/' /etc/ssh/sshd_config + - sed -i -e '/^\(#\|\)ChallengeResponseAuthentication/s/^.*$/ChallengeResponseAuthentication no/' /etc/ssh/sshd_config + - sed -i -e '/^\(#\|\)MaxAuthTries/s/^.*$/MaxAuthTries 5/' /etc/ssh/sshd_config + - sed -i -e '/^\(#\|\)AllowTcpForwarding/s/^.*$/AllowTcpForwarding no/' /etc/ssh/sshd_config + - sed -i -e '/^\(#\|\)X11Forwarding/s/^.*$/X11Forwarding no/' /etc/ssh/sshd_config + - sed -i -e '/^\(#\|\)AllowAgentForwarding/s/^.*$/AllowAgentForwarding no/' /etc/ssh/sshd_config + - sed -i -e '/^\(#\|\)AuthorizedKeysFile/s/^.*$/AuthorizedKeysFile .ssh\/authorized_keys/' /etc/ssh/sshd_config + - sed -i 's/^#Port 22/Port 22522/' /etc/ssh/sshd_config + - reboot + diff --git a/terraform/docker-server.tf b/terraform/docker-server.tf new file mode 100644 index 0000000..f7a882c --- /dev/null +++ b/terraform/docker-server.tf @@ -0,0 +1,26 @@ +variable "cloud_init_file" { + type = string + description = "Der Inhalt der Cloud-Init-Datei" + default = "" +} + +locals { + cloud_init_content = file("cloud-init/hetzner-cloud.yml") +} + +resource "hcloud_server" "server-4-docker-keks-cloud" { + name = "4.docker.keks.cloud-test" + image = "debian-12" + server_type = "cx22" + location = "fsn1" + public_net { + ipv4_enabled = true + ipv6_enabled = true + } + keep_disk = true + labels { + server_type = "docker" + } + backups = false + user_data = local.cloud_init_content +}