Input variables :
Chaine :
variable "instance-type" {
type = string
description = "The type of instance"
default = "t2.micro"
}
resource "aws_instance" "srv1" {
ami = "ami-8ee056f3"
instance_type = var.instance-type
}
Bool :
variable "ebsoptimized" {
type = bool
default = false
}
resource "aws_instance" "srv1" {
ami = "ami-8ee056f3"
ebs_optimized = var. ebsoptimized
instance_type = var.instance-type
}
Tableau :
variable "iam-users" {
type = list(any)
default = ["homer", "bart", "flanders"]
}
resource "aws_iam_user" "admin" {
name = var.iam-users[1]
path = "/system/"
}
Clé/Valeur :
variable "storage_sizes" {
type = map(any)
default = {
"WebServer" = "10"
"DataBase" = "30"
"FileServer" = "100"
}
}
resource "aws_ebs_volume" "www_srv1" {
availability_zone = aws_instance.srv1.availability_zone
size = var.storage_sizes["WebServer"]
}
Depuis la CLI :
terraform apply -var instance-type=t3.micro
Output variables :
Afficher une valeur :
output "srv1_ip" {
value = aws_instance.srv1.public_ip
}
