<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://www.rainsbrook.co.uk/wiki/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://www.rainsbrook.co.uk/wiki/feed.php">
        <title>Rainsbrook - terraform</title>
        <description></description>
        <link>https://www.rainsbrook.co.uk/wiki/</link>
        <image rdf:resource="https://www.rainsbrook.co.uk/wiki/lib/exe/fetch.php?media=wiki:dokuwiki.svg" />
       <dc:date>2026-05-01T13:08:01+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://www.rainsbrook.co.uk/wiki/doku.php?id=terraform:debugging_terraform&amp;rev=1668445224&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.rainsbrook.co.uk/wiki/doku.php?id=terraform:list&amp;rev=1739899798&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.rainsbrook.co.uk/wiki/doku.php?id=terraform:map&amp;rev=1739892651&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.rainsbrook.co.uk/wiki/doku.php?id=terraform:modules1&amp;rev=1739377788&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.rainsbrook.co.uk/wiki/doku.php?id=terraform:modules2&amp;rev=1739201535&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.rainsbrook.co.uk/wiki/doku.php?id=terraform:start&amp;rev=1759831429&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.rainsbrook.co.uk/wiki/doku.php?id=terraform:terraform-console&amp;rev=1671623488&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.rainsbrook.co.uk/wiki/doku.php?id=terraform:terraform-examples1&amp;rev=1668505619&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.rainsbrook.co.uk/wiki/doku.php?id=terraform:terraform-examples2&amp;rev=1646837540&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.rainsbrook.co.uk/wiki/doku.php?id=terraform:terraform-variables&amp;rev=1739814008&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.rainsbrook.co.uk/wiki/doku.php?id=terraform:terraform-workspace&amp;rev=1673520264&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://www.rainsbrook.co.uk/wiki/lib/exe/fetch.php?media=wiki:dokuwiki.svg">
        <title>Rainsbrook</title>
        <link>https://www.rainsbrook.co.uk/wiki/</link>
        <url>https://www.rainsbrook.co.uk/wiki/lib/exe/fetch.php?media=wiki:dokuwiki.svg</url>
    </image>
    <item rdf:about="https://www.rainsbrook.co.uk/wiki/doku.php?id=terraform:debugging_terraform&amp;rev=1668445224&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-11-14T17:00:24+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>debugging_terraform</title>
        <link>https://www.rainsbrook.co.uk/wiki/doku.php?id=terraform:debugging_terraform&amp;rev=1668445224&amp;do=diff</link>
        <description>Debugging Terraform

To troubleshoot further and find which resources couldn't be found, I tried this to add verbosity:-


study:aws-vpn-vpc $ export TF_LOG=DEBUG
study:aws-vpn-vpc $ terraform plan


Options are TRACE, DEBUG, INFO, WARN or ERROR, or</description>
    </item>
    <item rdf:about="https://www.rainsbrook.co.uk/wiki/doku.php?id=terraform:list&amp;rev=1739899798&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-02-18T17:29:58+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>list</title>
        <link>https://www.rainsbrook.co.uk/wiki/doku.php?id=terraform:list&amp;rev=1739899798&amp;do=diff</link>
        <description>Terraform lists


variable &quot;cidr_block&quot; {
  type    = list(string)
  default = [&quot;10.0.0.0/16&quot;, &quot;10.1.0.0/16&quot;, &quot;10.2.0.0/16&quot;]
}</description>
    </item>
    <item rdf:about="https://www.rainsbrook.co.uk/wiki/doku.php?id=terraform:map&amp;rev=1739892651&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-02-18T15:30:51+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>map</title>
        <link>https://www.rainsbrook.co.uk/wiki/doku.php?id=terraform:map&amp;rev=1739892651&amp;do=diff</link>
        <description>Terraform Map statement


$ more main.tf
variable &quot;owner&quot; {
  description = &quot;Hat owner&quot;
  type        = string
}


variable &quot;var_map&quot; {
  type = map(string)
  default = {
    tom  = &quot;Trilby&quot;
    bertie  = &quot;Bowler&quot;
    harry  = &quot;Homberg&quot;
  }
}


output &quot;owner&quot; {
  value = var.owner
}
output &quot;hatvalue&quot; {
  value = &quot;${lookup(var.var_map, var.owner)}&quot;
}
output &quot;hatvalue1&quot; {
  value = var.var_map[var.owner]
}</description>
    </item>
    <item rdf:about="https://www.rainsbrook.co.uk/wiki/doku.php?id=terraform:modules1&amp;rev=1739377788&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-02-12T16:29:48+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>modules1</title>
        <link>https://www.rainsbrook.co.uk/wiki/doku.php?id=terraform:modules1&amp;rev=1739377788&amp;do=diff</link>
        <description>Basic Modules example

To create an AWS parameter in a module, just the simplest example I could think of. The access key and secret are exported as shell variables. This is not the best way to do this, but the object of the excercise is to play with modules not authentication.</description>
    </item>
    <item rdf:about="https://www.rainsbrook.co.uk/wiki/doku.php?id=terraform:modules2&amp;rev=1739201535&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-02-10T15:32:15+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>modules2</title>
        <link>https://www.rainsbrook.co.uk/wiki/doku.php?id=terraform:modules2&amp;rev=1739201535&amp;do=diff</link>
        <description>Terraform Modules

Structure


tree
.
+--- input.tf
+--- main.tf
+--- modules
|   +--- dynamo_module
|   |   +--- main.tf
|   |   +--- outputs.tf
|   |   +--- README.md
|   |   +--- variables.tf
|   +--- parameter_module
|   |   +--- main.tf
|   |   +--- outputs.tf
|   |   +--- variables.tf
+--- outputs.tf
+--- README
+--- setup.tf</description>
    </item>
    <item rdf:about="https://www.rainsbrook.co.uk/wiki/doku.php?id=terraform:start&amp;rev=1759831429&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-10-07T10:03:49+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>start</title>
        <link>https://www.rainsbrook.co.uk/wiki/doku.php?id=terraform:start&amp;rev=1759831429&amp;do=diff</link>
        <description>Terraform

Links:-

&lt;https://tech.smartling.com/getting-started-with-terraform-and-aws-ec2-first-steps-workshop-1-e38607f0fd4c&gt;

&lt;https://blog.scottlowe.org/2015/11/25/intro-to-terraform/&gt;

&lt;https://stephenmann.io/post/setting-up-monitoring-and-alerting-on-amazon-aws-with-terraform/&gt;

Simple example 1

Simple example 2

Starting

Terraform reads all files in a directory to build a project. By convention they end .tf

Terrraform used plug in modules to communicate with a cloud provider, eg. AWS, …</description>
    </item>
    <item rdf:about="https://www.rainsbrook.co.uk/wiki/doku.php?id=terraform:terraform-console&amp;rev=1671623488&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-12-21T11:51:28+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>terraform-console</title>
        <link>https://www.rainsbrook.co.uk/wiki/doku.php?id=terraform:terraform-console&amp;rev=1671623488&amp;do=diff</link>
        <description>Terraform Console


variable &quot;cidr_blocks&quot; {
  description = &quot;CIDR blocks&quot;
  type = list(string)
  default = [
    &quot;192.168.100.1/24&quot;,
    &quot;192.168.100.2/24&quot;,
    &quot;192.168.100.3/24&quot;,
  ]
}



$ terraform console
&gt; var.cidr_blocks
tolist([
  &quot;192.168.100.1/24&quot;,
  &quot;192.168.100.2/24&quot;,
  &quot;192.168.100.3/24&quot;,                                                                                                                      &gt;
&gt; exit
$</description>
    </item>
    <item rdf:about="https://www.rainsbrook.co.uk/wiki/doku.php?id=terraform:terraform-examples1&amp;rev=1668505619&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-11-15T09:46:59+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>terraform-examples1</title>
        <link>https://www.rainsbrook.co.uk/wiki/doku.php?id=terraform:terraform-examples1&amp;rev=1668505619&amp;do=diff</link>
        <description>Simple example


andrew@puppet:~/terraform/ec2-Build$ cat ec2-builder1.tf 
# test build for simple ec2-instance
# Andrew 20/09/2018

provider &quot;aws&quot; {
  assume_role {
    role_arn = &quot;arn:aws:iam::1234567890:role/sandbox&quot;

  }
  access_key = &quot;YourKeyHere&quot;
  secret_key = &quot;YourSecretHere&quot;
  region     = &quot;eu-west-1&quot;  (Ireland)
}


resource &quot;aws_instance&quot; &quot;example&quot; {
  ami           = &quot;ami-0bdb1d6c15a403123&quot;
  instance_type = &quot;t2.micro&quot;
}



andrew@puppet:~/terraform/ec2-Build$</description>
    </item>
    <item rdf:about="https://www.rainsbrook.co.uk/wiki/doku.php?id=terraform:terraform-examples2&amp;rev=1646837540&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-03-09T14:52:20+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>terraform-examples2</title>
        <link>https://www.rainsbrook.co.uk/wiki/doku.php?id=terraform:terraform-examples2&amp;rev=1646837540&amp;do=diff</link>
        <description>Terraform snippets

Setting Variables


variable &quot;prod_tunnel&quot; {
  default = &quot;true&quot;
}


#AWS TAGS
locals {
  common_tags = {
    constructby = &quot;Terraform&quot;
    cost.       = &quot;AC2345&quot;
    email       = &quot;support@example.com&quot;
    environment = &quot;production&quot;
  }
}</description>
    </item>
    <item rdf:about="https://www.rainsbrook.co.uk/wiki/doku.php?id=terraform:terraform-variables&amp;rev=1739814008&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-02-17T17:40:08+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>terraform-variables</title>
        <link>https://www.rainsbrook.co.uk/wiki/doku.php?id=terraform:terraform-variables&amp;rev=1739814008&amp;do=diff</link>
        <description>Terraform Variables

setup.tf


terraform {
  required_providers {
    aws = {
      source  = &quot;hashicorp/aws&quot;
      version = &quot;3.74.1&quot;
    }
  }

  backend &quot;s3&quot; {
    region         = &quot;eu-west-2&quot;
    bucket         = &quot;statefiles&quot;
    key            = &quot;tsg/plan-apply.tfstate&quot;
    dynamodb_table = &quot;tsg-plan-apply-lockfiles&quot;
  }
}</description>
    </item>
    <item rdf:about="https://www.rainsbrook.co.uk/wiki/doku.php?id=terraform:terraform-workspace&amp;rev=1673520264&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-01-12T10:44:24+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>terraform-workspace</title>
        <link>https://www.rainsbrook.co.uk/wiki/doku.php?id=terraform:terraform-workspace&amp;rev=1673520264&amp;do=diff</link>
        <description>Terraform Workspace

Set up workspace


$ terraform workspace new dev
Created and switched to workspace &quot;dev&quot;!

$ terraform workspace new prod
Created and switched to workspace &quot;prod&quot;!

$ terraform workspace list
  default  &lt;------------------ Note default workspace which is always present.
* dev      &lt;================== Asterisk indicates current workspace
  prod
  testing123

$ terraform workspace select prod
Switched to workspace &quot;prod&quot;.

$ terraform workspace show
prod


$ terraform workspac…</description>
    </item>
</rdf:RDF>
