This commit is contained in:
@@ -17,35 +17,30 @@ jobs:
|
||||
# Wir übergeben die Secrets als Environment-Variablen an den SSH-Befehl
|
||||
envs: HETZNER_TOKEN
|
||||
script: |
|
||||
set-e
|
||||
mkdir -p /root/iac
|
||||
cd /root/iac
|
||||
|
||||
# Repository aktualisieren
|
||||
if [ ! -d ".git" ]; then
|
||||
git clone https://git.bana.space/krumbelfix/iac.git .
|
||||
else
|
||||
git pull origin main
|
||||
fi
|
||||
|
||||
# Sicherstellen, dass die Datei existiert
|
||||
mkdir -p ./hetzner
|
||||
touch ./hetzner/terraform.tfvars
|
||||
|
||||
# Token suchen und ersetzen oder hinzufügen
|
||||
# Wir nutzen doppelte Anführungszeichen für den Bash-String und
|
||||
# einfache für den sed-Befehl, um Konflikte zu vermeiden.
|
||||
if grep -q "hcloud_token =" ./hetzner/terraform.tfvars; then
|
||||
sed -i "s|^hcloud_token =.*|hcloud_token = \"${HETZNER_TOKEN}\"|" ./hetzner/terraform.tfvars
|
||||
else
|
||||
echo "hcloud_token = \"${HETZNER_TOKEN}\"" >> ./hetzner/terraform.tfvars
|
||||
fi
|
||||
|
||||
# Terraform
|
||||
terraform init
|
||||
terraform plan
|
||||
terraform apply -auto-approve
|
||||
|
||||
echo "Deployment successful"
|
||||
set -e
|
||||
mkdir -p /root/iac
|
||||
cd /root/iac
|
||||
|
||||
# Repository aktualisieren
|
||||
if [ ! -d ".git" ]; then
|
||||
git clone https://git.bana.space/krumbelfix/iac.git .
|
||||
else
|
||||
git pull origin main
|
||||
fi
|
||||
|
||||
# Datei komplett neu schreiben (verhindert Syntax-Chaos)
|
||||
# Wir schreiben hier alle benötigten Variablen sauber rein
|
||||
cat <<EOF > ./hetzner/terraform.tfvars
|
||||
hcloud_token = "${HETZNER_TOKEN}"
|
||||
distro_id = "ubuntu"
|
||||
EOF
|
||||
|
||||
# Terraform ausführen
|
||||
# Wir geben die Datei explizit mit -var-file an, um sicherzugehen
|
||||
terraform init
|
||||
terraform plan -var-file="./hetzner/terraform.tfvars"
|
||||
terraform apply -auto-approve -var-file="./hetzner/terraform.tfvars"
|
||||
|
||||
echo "Deployment successful"
|
||||
env:
|
||||
HETZNER_TOKEN : ${{ secrets.HETZNER_TOKEN }}
|
||||
|
||||
11
main.tf
11
main.tf
@@ -10,6 +10,7 @@ locals {
|
||||
username = var.username
|
||||
ssh_public_key = var.ssh_public_key
|
||||
distro_id = vars.distro_id
|
||||
|
||||
})
|
||||
}
|
||||
|
||||
@@ -73,4 +74,14 @@ resource "hcloud_firewall" "vps" {
|
||||
resource "hcloud_firewall_attachment" "vps" {
|
||||
firewall_id = hcloud_firewall.vps.id
|
||||
server_ids = [hcloud_server.vps.id]
|
||||
}
|
||||
variable "distro_id" {
|
||||
type = string
|
||||
default = "ubuntu"
|
||||
}
|
||||
|
||||
variable "hcloud_token" {
|
||||
description = "Hetzner Cloud API token"
|
||||
type = string
|
||||
sensitive = true
|
||||
}
|
||||
Reference in New Issue
Block a user