local_file/
== local_file
hello
-
preexisting_file
-
destroy.sh
#!/bin/bash
../../../bin/destroy.sh
main.tf
# Summary: Create and manage a local file.
# Documentation: https://www.terraform.io/docs/language/settings/index.html
terraform {
required_version = ">= 1.0.0"
}
# Documentation: https://registry.terraform.io/providers/hashicorp/local/latest/docs/resources/file
resource "local_file" "changeme_local_file_hello" {
content = "Hello terraform local!"
filename = "${path.module}/changeme_local_file_hello_${terraform.workspace}.txt"
}
run.sh
#!/bin/bash
../../../bin/apply.sh
changeme_preexisting_file.txt
Some file content
destroy.sh
#!/bin/bash
../../../bin/destroy.sh
main.tf
# Summary: Take an existing file into a Terraform state, using data.local_file's configuration.
# Documentation: https://www.terraform.io/docs/language/settings/index.html
terraform {
required_version = ">= 1.0.0"
}
# Documentation: https://registry.terraform.io/providers/hashicorp/local/latest/docs/data-sources/file
data "local_file" "changeme_local_file_preexisting_file" {
filename = "${path.module}/changeme_preexisting_file.txt"
}
# Documentation: https://www.terraform.io/docs/language/values/outputs.html
output "changeme_preexisting_file_content" {
value = data.local_file.changeme_local_file_preexisting_file.content
}
run.sh
#!/bin/bash
../../../bin/apply.sh
local_file/hello/
destroy.sh
#!/bin/bash
../../../bin/destroy.sh
main.tf
# Summary: Create and manage a local file.
# Documentation: https://www.terraform.io/docs/language/settings/index.html
terraform {
required_version = ">= 1.0.0"
}
# Documentation: https://registry.terraform.io/providers/hashicorp/local/latest/docs/resources/file
resource "local_file" "changeme_local_file_hello" {
content = "Hello terraform local!"
filename = "${path.module}/changeme_local_file_hello_${terraform.workspace}.txt"
}
run.sh
#!/bin/bash
../../../bin/apply.sh
local_file/preexisting_file/
changeme_preexisting_file.txt
Some file content
destroy.sh
#!/bin/bash
../../../bin/destroy.sh
main.tf
# Summary: Take an existing file into a Terraform state, using data.local_file's configuration.
# Documentation: https://www.terraform.io/docs/language/settings/index.html
terraform {
required_version = ">= 1.0.0"
}
# Documentation: https://registry.terraform.io/providers/hashicorp/local/latest/docs/data-sources/file
data "local_file" "changeme_local_file_preexisting_file" {
filename = "${path.module}/changeme_preexisting_file.txt"
}
# Documentation: https://www.terraform.io/docs/language/values/outputs.html
output "changeme_preexisting_file_content" {
value = data.local_file.changeme_local_file_preexisting_file.content
}
run.sh
#!/bin/bash
../../../bin/apply.sh
null_resource/for_each/
destroy.sh
#!/bin/bash
../../../bin/destroy.sh
main.tf
# Summary: Local null resource that iterates over a map using for_each
# Documentation: https://www.terraform.io/docs/language/settings/index.html
terraform {
required_version = ">= 1.0.0"
}
# Documentation: https://www.terraform.io/docs/language/values/locals.html
locals {
# Documentation: https://www.terraform.io/docs/language/expressions/types.html#maps-objects
map1 = {
item1 = {
name1 = "item1value1"
name2 = "item1value2"
}
item2 = {
name1 = "item2value1"
name2 = "item2value2"
}
}
}
# Documentation: https://registry.terraform.io/providers/hashicorp/null/latest/docs/resources/resource
resource "null_resource" "changeme_null_resource_foreach" {
# Documentation: https://www.terraform.io/docs/language/meta-arguments/for_each.html
for_each = local.map1
# Documentation: https://www.terraform.io/docs/language/resources/provisioners/local-exec.html
provisioner "local-exec" {
command = "echo ${each.key} ${each.value.name1} ${each.value.name2}"
}
}
run.sh
#!/bin/bash
../../../bin/apply.sh
null_resource/simple/
destroy.sh
#!/bin/bash
../../../bin/destroy.sh
main.tf
# Summary: Simple example of local null_resource that runs a command
# Documentation: https://www.terraform.io/docs/language/settings/index.html
terraform {
required_version = ">= 1.0.0"
}
# Documentation: https://registry.terraform.io/providers/hashicorp/null/latest/docs/resources/resource
resource "null_resource" "changeme_null_resource_simple" {
provisioner "local-exec" {
command = "echo Hello World"
}
}
run.sh
#!/bin/bash
../../../bin/apply.sh