From d80510e61d83d34686b874b56d432d800530475d Mon Sep 17 00:00:00 2001 From: alessandrovitali Date: Tue, 18 Aug 2026 16:44:56 +0200 Subject: [PATCH 1/3] fix(ansible): update default user --- ansible/inventory.tpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ansible/inventory.tpl b/ansible/inventory.tpl index 253aab1..4946117 100644 --- a/ansible/inventory.tpl +++ b/ansible/inventory.tpl @@ -1,2 +1,2 @@ [dokploy] -dokploy ansible_host=${public_ip} ansible_user=debian +dokploy ansible_host=${public_ip} ansible_user=root -- 2.54.0 From a49e565124d8aa40f11fb338970e6a44f300dc5c Mon Sep 17 00:00:00 2001 From: alessandrovitali Date: Tue, 18 Aug 2026 16:48:09 +0200 Subject: [PATCH 2/3] feat: disable root user & bootstrap ansible user at VM provisioning with cloud-init --- ansible/inventory.tpl | 2 +- terraform/main.tf | 4 +++- terraform/user_data.tpl | 9 +++++++++ 3 files changed, 13 insertions(+), 2 deletions(-) create mode 100644 terraform/user_data.tpl diff --git a/ansible/inventory.tpl b/ansible/inventory.tpl index 4946117..90880f2 100644 --- a/ansible/inventory.tpl +++ b/ansible/inventory.tpl @@ -1,2 +1,2 @@ [dokploy] -dokploy ansible_host=${public_ip} ansible_user=root +dokploy ansible_host=${public_ip} diff --git a/terraform/main.tf b/terraform/main.tf index 8850638..8036b6a 100644 --- a/terraform/main.tf +++ b/terraform/main.tf @@ -10,7 +10,9 @@ resource "hcloud_server" "dokploy" { image = var.hcloud_image server_type = var.hcloud_server_type location = var.hcloud_location - ssh_keys = [hcloud_ssh_key.ansible.id] + user_data = templatefile("${path.module}/user_data.tpl", { + ssh_public_key = var.ssh_public_key + }) firewall_ids = [hcloud_firewall.host.id] public_net { diff --git a/terraform/user_data.tpl b/terraform/user_data.tpl new file mode 100644 index 0000000..e9f97c2 --- /dev/null +++ b/terraform/user_data.tpl @@ -0,0 +1,9 @@ +# cloud-config +users: + - name: ansible + sudo: ALL=(ALL) NOPASSWD:ALL + shell: /bin/bash + ssh_authorized_keys: + - ${ssh_public_key} +ssh_pwauth: false +disable_root: true -- 2.54.0 From 31a05abb62a290cfafc663be9de039f012d07d90 Mon Sep 17 00:00:00 2001 From: alessandrovitali Date: Thu, 20 Aug 2026 17:09:26 +0200 Subject: [PATCH 3/3] chore(terraform): move template files into terraform/templates dir --- terraform/main.tf | 4 ++-- .../templates/ansible_inventory.tpl | 0 terraform/{ => templates}/user_data.tpl | 0 3 files changed, 2 insertions(+), 2 deletions(-) rename ansible/inventory.tpl => terraform/templates/ansible_inventory.tpl (100%) rename terraform/{ => templates}/user_data.tpl (100%) diff --git a/terraform/main.tf b/terraform/main.tf index 8036b6a..7fcc66e 100644 --- a/terraform/main.tf +++ b/terraform/main.tf @@ -10,7 +10,7 @@ resource "hcloud_server" "dokploy" { image = var.hcloud_image server_type = var.hcloud_server_type location = var.hcloud_location - user_data = templatefile("${path.module}/user_data.tpl", { + user_data = templatefile("${path.module}/templates/user_data.tpl", { ssh_public_key = var.ssh_public_key }) firewall_ids = [hcloud_firewall.host.id] @@ -69,7 +69,7 @@ resource "cloudflare_dns_record" "a" { # Write IP to Ansible inventory resource "local_file" "ansible_inventory" { - content = templatefile("${path.module}/../ansible/inventory.tpl", { + content = templatefile("${path.module}/templates/ansible_inventory.tpl", { public_ip = local.public_ip }) filename = "${path.module}/../ansible/inventory.ini" diff --git a/ansible/inventory.tpl b/terraform/templates/ansible_inventory.tpl similarity index 100% rename from ansible/inventory.tpl rename to terraform/templates/ansible_inventory.tpl diff --git a/terraform/user_data.tpl b/terraform/templates/user_data.tpl similarity index 100% rename from terraform/user_data.tpl rename to terraform/templates/user_data.tpl -- 2.54.0