Terraform

From Halfface
Jump to navigation Jump to search

install terraform

sudo dnf install -y dnf-plugins-core
sudo dnf config-manager --add-repo https://rpm.releases.hashicorp.com/fedora/hashicorp.repo
sudo dnf install terraform

Hardcoded install

cd /tmp/ ; curl -sk -L https://releases.hashicorp.com/terraform/1.5.5/terraform_1.5.5_linux_amd64.zip -O ; cd /usr/bin/ ; sudo unzip /tmp/terraform_1.5.5_linux_amd64.zip

file completion

complete -C /usr/bin/terraform terraform

Remove terraform infrastructure

terraform destroy

show

Show what has been done.

terraform show

state

list resources within a Terraform state.

terraform state list

Show more info about individual entity.

terraform state show openstack_networking_network_v2.net3

Import state

terraform import module.kafka_eks.kubernetes_manifest.configmap_kafka_akhq "apiVersion=v1,kind=ConfigMap,namespace=kafka,name=akhq"
terraform import module.kafka_eks.helm_release.akhq kafka/akhq

Name of statefile

terraform.tfstate

state nuke

rm -rf .terraform* terraform*

plan

Creates an execution plan, which lets you preview the changes that Terraform plans to make to your infrastructure.

terraform plan

apply

Performs a plan just like terraform plan does, but then actually carries out the planned changes to each resource using the relevant infrastructure provider's API.

terraform apply

debug

TF_LOG=trace terraform init
TRACE DEBUG INFO WARN ERROR

terraform output

Reads and output variable from a Terraform state file

cloud-init

set password on user

ssh_pwauth: false
chpasswd:
  expire: false
  users:
    - name: root
      password: password
      type: text

tofu

Apply without asking.

tofu apply -auto-approve

destroy without asking

tofu destroy -auto-approve

tfk8s

contvert k8s yaml to terraform

tfk8s --strip --file <input> --output <output>

dynamodb

List tables

aws dynamodb list-tables

Look at table.

aws dynamodb scan --table-name

Delete row from table. aws dynamodb delete-item --table-name <your-lock-table> --key '{"LockID": {"S": "<lock-id>"}}'