Day 7
$ 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
No comments:
Post a Comment