An open API service indexing awesome lists of open source software.

https://github.com/willfarrell/terraform-state-module

Terraform module: Set up state backend using S3 & DynamoDB
https://github.com/willfarrell/terraform-state-module

Last synced: 9 months ago
JSON representation

Terraform module: Set up state backend using S3 & DynamoDB

Awesome Lists containing this project

README

          

# terraform-state-module
Terraform module: Set up state backend using S3 & DynamoDB

## Use
`global/init/main.tf`:
```hcl-terraform
variable "name" {
default = "NAME"
}
variable "region" {
default = "us-east-1"
}
variable "profile" {
default = "farrelllabs"
}

provider "aws" {
region = "${var.region}"
profile = "${var.profile}"
}

module "state" {
source = "git@github.com/willfarrell/terraform-state-module"
name = "${var.name}"
}

# Used in backend.s3 block
output "backend_s3_region" {
value = "${var.region}"
}
output "backend_s3_profile" {
value = "${var.profile}"
}
output "backend_s3_dynamodb_table" {
value = "${module.state.dynamodb_table_id}"
}
output "backend_s3_bucket" {
value = "${module.state.s3_bucket_id}"
}
output "backend_s3_bucket_logs" {
value = "${module.state.s3_bucket_logs_id}"
}

```

### Remote State
```hcl-terraform
terraform {
backend "s3" {
bucket = "tfstate-NAME"
key = "vpc/terraform.tfstate"
region = "us-east-1"
profile = "tesera"
dynamodb_table = "tfstate-NAME"
kms_key_id = "arn:aws:kms:us-east-1::key/"
}
}
```

## Inputs
- **name:** Makes name unique tfstate-${name} [Optional]

Ensure `.gitignore` saves these files.
```
# Compiled files
*.tfstate
*.tfstate.backup
!global/init/terraform.tfstate
!global/init/terraform.tfstate.backup

# Module directory
.terraform/
```