#!/bin/bash if [ -z $1 ] then echo "[ERROR] Musis zadat nazov TFC organization ako parameter." echo " Napriklad: ./backup-terraform-cloud.sh azure-sandbox-pd" echo "" exit 1 fi TOKEN=$(cat ~/.terraform.d/credentials.tfrc.json | jq -r '.[]."app.terraform.io".token') ORG_NAME=$1 YEAR=$(date +"%Y") MONTH=$(date +"%m") DIR=$(date +"%y%m%d-%H%M") BACKUP_DIR=$YEAR/$MONTH/$DIR/$ORG_NAME mkdir -p $BACKUP_DIR WORKSPACE_ID=$(curl \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/vnd.api+json" \ "https://app.terraform.io/api/v2/organizations/$ORG_NAME/workspaces" | jq -r '.data [].id') for ID in $WORKSPACE_ID; do OBJECT_ID=$(curl \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/vnd.api+json" \ "https://app.terraform.io/api/v2/workspaces/$ID/current-state-version" | jq -r '.data.attributes."hosted-state-download-url"') curl -H "Authorization: Bearer $TOKEN" "$OBJECT_ID" -o $BACKUP_DIR/$ID.tfstate done