Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
rb:terraform [20/09/2018 12:36]
andrew [Starting]
— (current)
Line 1: Line 1:
-====== Terraform ====== 
- 
-Links:- 
- 
-https://​tech.smartling.com/​getting-started-with-terraform-and-aws-ec2-first-steps-workshop-1-e38607f0fd4c 
- 
-https://​blog.scottlowe.org/​2015/​11/​25/​intro-to-terraform/​ 
- 
-https://​stephenmann.io/​post/​setting-up-monitoring-and-alerting-on-amazon-aws-with-terraform/​ 
- 
- 
- 
-===== 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, the init phase loads these in a .terraform directory. 
- 
-Phases of build:- 
-  $ cd to target directory 
-  $ terraform init 
-  $ terraform plan 
-  $ terraform apply 
-  $ terraform destroy 
- 
- 
-Simple example 
- 
-<​code>​ 
-andrew@puppet:​~/​terraform/​ec2-Build$ cat ec2-builder1.tf ​ 
-# test build for simple ec2-instance 
-# Andrew Stringer 20/09/2018 
- 
-provider "​aws"​ { 
-  assume_role { 
-    role_arn = "​arn:​aws:​iam::​1234567890:​role/​sandbox"​ 
- 
-  } 
-  access_key = "​YourKeyHere"​ 
-  secret_key = "​YourSecretHere"​ 
-  region ​    = "​eu-west-1" ​ (Ireland) 
-} 
- 
- 
-resource "​aws_instance"​ "​example"​ { 
-  ami           = "​ami-0bdb1d6c15a40392c"​ 
-  instance_type = "​t2.micro"​ 
-} 
- 
- 
- 
-andrew@puppet:​~/​terraform/​ec2-Build$ 
-</​code>​ 
- 
-This is built and destroyed thus:- 
-<​code>​ 
-andrew@puppet:​~/​terraform/​ec2-Build$ terraform init 
- 
-Initializing provider plugins... 
-- Checking for available provider plugins on https://​releases.hashicorp.com... 
-- Downloading plugin for provider "​aws"​ (1.37.0)... 
- 
-andrew@puppet:​~/​terraform/​ec2-Build$ terraform plan 
-Refreshing Terraform state in-memory prior to plan... 
-The refreshed state will be used to calculate this plan, but will not be 
-persisted to local or remote state storage. 
- 
- 
------------------------------------------------------------------------- 
- 
-An execution plan has been generated and is shown below. 
-Resource actions are indicated with the following symbols: 
-  + create 
- 
-Terraform will perform the following actions: 
- 
-  + aws_instance.example 
-      id:                           <​computed>​ 
-      ami:                          "​ami-0bdb123456789"​ 
-      arn:                          <​computed>​ 
-...edited... 
-      ephemeral_block_device.#: ​    <​computed>​ 
-      get_password_data: ​           "​false"​ 
-      instance_state: ​              <​computed>​ 
-      instance_type: ​               "​t2.micro"​ 
-...edited... 
-      volume_tags.%: ​               <​computed>​ 
-      vpc_security_group_ids.#: ​    <​computed>​ 
- 
- 
-Plan: 1 to add, 0 to change, 0 to destroy. 
- 
-andrew@puppet:​~/​terraform/​ec2-Build$ terraform apply 
- 
-An execution plan has been generated and is shown below. 
-Resource actions are indicated with the following symbols: 
-  + create 
- 
-Terraform will perform the following actions: 
- 
-  + aws_instance.example 
-      id:                           <​computed>​ 
-...edited... 
-      vpc_security_group_ids.#: ​    <​computed>​ 
- 
- 
-Plan: 1 to add, 0 to change, 0 to destroy. 
- 
-Do you want to perform these actions? 
-  Terraform will perform the actions described above. 
-  Only '​yes'​ will be accepted to approve. 
- 
-  Enter a value: yes 
- 
-aws_instance.example:​ Creating... 
-  ami:                          ""​ => "​ami-0bdb123456789"​ 
-  arn:                          ""​ => "<​computed>"​ 
-  associate_public_ip_address: ​ ""​ => "<​computed>"​ 
-...edited... 
-aws_instance.example:​ Creation complete after 32s (ID: i-07e6c7dec9c95f167) 
- 
-Apply complete! Resources: 1 added, 0 changed, 0 destroyed. 
-andrew@puppet:​~/​terraform/​ec2-Build$ 
- 
- 
- 
- 
-andrew@puppet:​~/​terraform/​ec2-Build$ terraform destroy 
-aws_instance.example:​ Refreshing state... (ID: i-07e6c7dec9c95f167) 
- 
-An execution plan has been generated and is shown below. 
-Resource actions are indicated with the following symbols: 
-  - destroy 
- 
-Terraform will perform the following actions: 
- 
-  - aws_instance.example 
- 
- 
-Plan: 0 to add, 0 to change, 1 to destroy. 
- 
-Do you really want to destroy? 
-  Terraform will destroy all your managed infrastructure,​ as shown above. 
-  There is no undo. Only '​yes'​ will be accepted to confirm. 
- 
-  Enter a value: yes 
- 
-aws_instance.example:​ Destroying... (ID: i-) 
-aws_instance.example:​ Still destroying... (ID: i-07e6c7dec9c95f167,​ 10s elapsed) 
-...edited... 
-aws_instance.example:​ Still destroying... (ID: i-07e6c7dec9c95f167,​ 1m0s elapsed) 
-aws_instance.example:​ Destruction complete after 1m1s 
- 
-Destroy complete! Resources: 1 destroyed. 
-andrew@puppet:​~/​terraform/​ec2-Build$ ​ 
- 
-</​code>​ 
- 
- 
  

rb/terraform.1537443391.txt.gz ยท Last modified: 20/09/2018 12:36 by andrew