terraform:start
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| terraform:start [10/02/2025 15:23] – [destroy phase] andrew | terraform:start [07/10/2025 10:03] (current) – [State files and Lock files] andrew | ||
|---|---|---|---|
| Line 106: | Line 106: | ||
| - | === Modules === | + | ===== Modules |
| + | [[terraform: | ||
| + | |||
| + | [[terraform: | ||
| ===== State files and Lock files ===== | ===== State files and Lock files ===== | ||
| - | See [[aws:aws-cloudformation-terraformstate|Cloudformation for Terraform State Files and Lock Table]], this is some Cloudformation code which runs to bootstrap Terraform by creating an S3 bucket, DynamoDB Lock Table and stores the resulting Bucket and Table name in parameter | + | See [[aws: |
| - | Use S3 and Dynamo db to store this info. | + | Code to create bucket with Terraform and then remove it from the state file with a tf cli command, |
| + | <code yaml> | ||
| + | resource " | ||
| + | | ||
| + | |||
| + | tags = { | ||
| + | Name = "State Bucket" | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | This create the bucket, then we remove it from the state file, probably worth moving the code to crate the bucket out of the path Teraform sees to avoid errors trying to recreate an existing resourse. | ||
| + | <code bash> | ||
| + | terraform state rm aws_s3_bucket.state_bucket | ||
| + | </ | ||
| + | |||
| + | Then, we can add the state file bucket to the AWS provider code:- | ||
| + | <file yaml terraform.tf> | ||
| + | terraform { | ||
| + | required_version = ">= 1.2" | ||
| + | required_providers { | ||
| + | aws = { | ||
| + | source | ||
| + | version = "~> 5.92" | ||
| + | } | ||
| + | } | ||
| + | |||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | } | ||
| + | } | ||
| + | |||
| + | </ | ||
| + | |||
| + | **Updates to lockfile** - previously DynamoDb was used frequently for lock files, this can be stored in S3 along with the state:- | ||
| + | |||
| + | <file yaml terraform.tf> | ||
| + | terraform { | ||
| + | required_version = ">= 1.12" | ||
| + | required_providers { | ||
| + | aws = { | ||
| + | source | ||
| + | version = "~> 5.92" | ||
| + | } | ||
| + | } | ||
| + | |||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| ===== AWS Provisioner code ===== | ===== AWS Provisioner code ===== | ||
| Line 169: | Line 226: | ||
| - | ==== Snippets ==== | + | ===== Snippets |
| Line 362: | Line 419: | ||
| $ | $ | ||
| </ | </ | ||
| + | |||
| + | |||
| + | |||
| + | ===== Variables ===== | ||
| + | |||
| + | {{: | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| This page has been accessed for:- \\ | This page has been accessed for:- \\ | ||
terraform/start.1739200982.txt.gz · Last modified: by andrew
