Terraform - class notes
$ cat providers.tf
$ cat variables.tf
variable 'x' {
default = "t2.micro"
type = string
}
output "01" {
value = var.x
}
> tf apply -var-'x-t2.medium"
$ cat aws-main.tf
resource "aws_instance" "web" {
ami = "ami-012...."
instance_type = var.x
}
$ cat variables.tf
# variable 'x' {
# default = "t2.micro"
# type = string
# }
variable 'x' {}
output "01" {
value = var.x
}
> tf apply -var="x=t2.medium"
in this case, either you pass the value or it will prompt
don't change the code, pass the variable.
or you can create a config with key/value pair.
name must the same, fix file.
> notepad terraform.tfvars
#x="value"
x="t2.micro"
here, you can come and change
we change the value of x.
> tf apply
if you don't define, it will prompt but we defined, it will not prompt but will grab from config file.
> notepad terraform.tfvars
#x="value"
x="t2.large"
> tf apply -var="x=t2.micro"
Lets go to variable file
$ cat variables.tf
# variable 'x' {
# default = "t2.micro"
# type = string
# }
variable 'x' {}
variable "y" {
type=boot
}
output "01" {
value = var.y
}
commentout the content on aws_main.tf file.
> tf apply
ask you for true or false
boolean is good if you create condition
if you want to do something check the condition, if condition is true, do this if not do the else part.
turnety operator way ,,
condition - question mark? - value1: value2
if condition comes true, display value1 else display value2
Note: true and false should be on lower case
output "01" {
value = var.y ? "Sam" : "Ram"
}
if true it will return Sam else Ram.
> cd google
provider "aws" {
region = "ap-south-1"
profile = "default"
}
provider "google" {
project = "myproj"
region = "asia-south1"
}
$ modify variable file
> tc apply
> tf plan
webapp -> Testing (QA Team) -> Prod
$ cat aws_main.tf
resource "aws_instance" "web" {
ami = "ami-01..."
instance_type = var.x
count = 5
}
cat variables.tf
append
variable "lstest" {
type = bool
}
change the value of 5
$ cat aws_main.tf
resource "aws_instance" "web" {
ami = "ami-01..."
instance_type = var.x
# count = 5
count = var.lstest ? 0 : 1 # if this is true, 0 , count 0 , this instance will not run
}
gcp_main.tf
resource "google_compute_instance" os1" {
name = "os1"
machine_type = var.mtype
zone = "asia-south-c"
count = var.istest ? 1 : 0
boot_disk {
initialize_params {
image = "debian-cloud/debian-g"
}
}
> tf apply -var="lstest=true"
ca variables.tf
append
variable "lstest" {
type = bool
}
variable "azaws" {
default = [ "ap-south-1a", "ap-south-1b", "ap-south-1c" ]
type = list
}
#output "0s2" {
# value = var.azaws
$ cat aws_main.tf
resource "aws_instance" "web" {
ami = "ami-01..."
instance_type = var.x
availability_zone = var.azaws[1]
count = 1
}
> tf apply
map data type
[ 'a', 'b', 'c' ]
system gives the index
you may want to do your own value
say a is id
variable "azaws" {
default = [ "ap-south-1a", "ap-south-1b", "ap-south-1c" ]
type = list
}
variable "types" {
type = map
default = { # maps in curly braces
us-est-1 = "t2.nano",
ap-south-1 = "t2.micro",
us-west-1 = "t2.medium"
}
}
# output "os3" {
# value = var.types
# value = var.types["ap-south-1"]
# }
> tf apply
when your signature becomes autograph you are something ...
Tuesday, June 1, 2021
Terraform - Day 9
Subscribe to:
Post Comments (Atom)
Git branch show detached HEAD
Git branch show detached HEAD 1. List your branch $ git branch * (HEAD detached at f219e03) 00 2. Run re-set hard $ git reset --hard 3. ...
-
snmpconfig command allow you to managge snmpv1/v3 agent configuration on SAN switch. Event trap level is mapped with event severity level....
-
Firmware upgrade on HPE SuperDom Flex 280 - prerequisites tasks a. Set up repo b. Upload firmware to your webserver 1. For foundation so...
-
Disabling the Telnet protocol on Brocade SAN switches By default, telnet is enabled on Brocade SAN switches. As part of security hardening o...
No comments:
Post a Comment