I'm new to Terraform, and I ran into some kind of problem when trying to use environment variables with a .tf file, I tried using terraform.tfvars / variables.tf .
./terraform apply -var-file="terraform.tfvars" Failed to load root config module: Error parsing variables.tf: At 54:17: illegal char
What am I missing here?
Terraform Version: Terraform v0.9.2
main.tf:
provider "aws" { access_key = "${var.aws_access_key}" secret_key = "${var.aws_secret_key}" region = "${var.aws_region}" allowed_account_ids = ["${var.aws_account_id}"] } resource "aws_instance" "db" { ami = "ami-49c9295" instance_type = "t2.micro" tags { Name = "test" } connection { user = "ubuntu" } security_groups = ["sg-ccc943b0"] availability_zone = "${var.availability_zone}" subnet_id = "${var.subnet_id}" }
terraform.tfvars:
aws_profile = "default" aws_access_key = "xxxxxx" aws_secret_key = "xxxxxx" aws_account_id = "xxxxxx" key_name = "keyname" key_path = "/home/user/.ssh/user.pem" aws_region = "us-east-1" subnet_id = "subnet-51997e7a" vpc_security_group_ids = "mysql" instance_type = "t2.xlarge" availability_zone = "us-east-1a"
variables.tf:
variable "key_name" { description = "Name of the SSH keypair to use in AWS." default = "keypairname" } variable "key_path" { description = "Path to the private portion of the SSH key specified." default = "/home/user/.ssh/mypem.pem" } variable "aws_region" { description = "AWS region to launch servers." default = "us-east-1" } variable "aws_access_key" { decscription = "AWS Access Key" default = "xxxxxx" } variable "aws_secret_key" { description = "AWS Secret Key" default = "xxxxxx" } variable "aws_account_id" { description = "AWS Account ID" default = "xxxxxx" } variable "subnet_id" { description = "Subnet ID to use in VPC" default = "subnet-51997e7a" } variable "vpc_security_group_ids" { description = "vpc_security_group_ids" default = "sec" } variable "instance_type" { description = "Instance type" default = "t2.xlarge" } variable "instance_name" { description = "Instance Name" default = "test" } variable "availability_zone" { description = "availability_zone" default = "us-east-1a" } variable "aws_amis" { default = { "us-east-1": "ami-49c9295f", "eu-west-1": "ami-49c9295f", "us-west-1": "ami-49c9295f", "us-west-2": "ami-49c9295f" } }
Update
After deleting the variable "aws_amis" section from variables.tf I ran into another problem:
Failed to load root config module: Error loading variables.tf: 1 error(s) occurred: * variable[aws_access_key]: invalid key: decscription
amazon-web-services terraform
Berlin
source share