Terraform 未部署正确的资源

问题描述 投票:0回答:1

我是 Terraform 的新手,无法部署下面的内容并用我的头撞它。 Terraform 无法将正确的资源部署到我的环境中,并且不确定我错过了什么。任何帮助表示赞赏。代码如下。

谢谢(任何关于 Terraform 的建议都是值得赞赏的。我可以说这将是非常明显的事情,但一小时的练习已经困扰了我一整天!)

provider "aws" {
region="us-east-1"
}

data "aws_vpc" "vpc" {
    tags = {
    Name = "vpc"
    }
}

data "aws_subnet_ids" "ecommerce" {
    vpc_id = "${data.aws_vpc.vpc.id}"

    tags = {
    Name = "database"
    }
}

resource "aws_db_subnet_group" "aurora" {
    name       = "aurora"
    subnet_ids = ["${data.aws_subnet_ids.ecommerce.ids}"]

    tags = {
    Name = "database"
    }
}

resource "aws_security_group" "database" {
    name        = "database"
    description = "ecommerce database"
    vpc_id      = "${data.aws_vpc.vpc.id}"
    
    tags = {
    Name = "database"
    }
}

resource "aws_security_group" "web" {
    name        = "web"
    description = "ecommerce web"
    vpc_id      = "${data.aws_vpc.vpc.id}"

    tags = {
    Name = "web"
    }
}

resource "aws_security_group_rule" "web_allow_https_in" {
    description       = "HTTPS access"
    type              = "ingress"
    from_port         = 443
    to_port=443
    protocol          = "tcp"
    cidr_blocks       = ["8.8.8.8/32"]
    security_group_id = "${aws_security_group.web.id}"
}

resource "aws_security_group_rule" "web_allow_mysql_out" {
    description              = "MySQL access"
    type                     = "egress"
    from_port= 3306
    to_port                  = 3306
    protocol                 = "tcp"
    security_group_id        = "${aws_security_group.web.id}"
}

resource "aws_security_group_rule" "db_allow_web_in" {
    description              = "Web access"
    type                     = "ingress"
    from_port                = 3306
    to_port                  = 3306
    protocol="tcp"
    security_group_id        = "${aws_security_group.database.id}"
    source_security_group_id = "${aws_security_group.web.id}"
}

data "aws_ami" "web" {
    owners      = ["self"]
    most_recent = true

    filter {
    name   = "name"
    values = ["web*"]
    }
}

resource "aws_instance" "web" {
    ami                         = "${data.aws_ami.web.id}"
    ebs_optimized               = true
    instance_type               = "t3.micro"
    associate_public_ip_address = false
    vpc_security_group_ids      = ["${aws_security_group.web.id}"]
    subnet_id                   = "${data.aws_subnet_ids.ecommerce.ids[0]}"

    ebs_block_device = {
    device_name           = "/dev/sdb"
    volume_type           = "gp2"
    volume_size           = "16"
    delete_on_termination = true
    }

    tags = {
    Name  = "Web"
    }

    lifecycle {
    ignore_changes = ["ami"]
    }
}

resource "aws_rds_cluster" "aurora" {
    apply_immediately         = true
    backup_retention_period   = 7
    cluster_identifier        = "mydatabase"
    engine                    = "aurora"
    database_name             = "main"
    storage_encrypted=true
    kms_key_id = "arn:aws**"
    db_subnet_group_name      = "${aws_db_subnet_group.aurora.id}"
    final_snapshot_identifier = "final"
    master_password           = "*"
    master_username           = "*"
    vpc_security_group_ids    = ["${aws_security_group.database.id}"]
}

resource "aws_rds_cluster_instance" "aurora" {
    count = 2

    apply_immediately    = true
    identifier           = "mydatabase-${count.index}"
    cluster_identifier   = "${aws_rds_cluster.aurora.id}"
    db_subnet_group_name = "${aws_db_subnet_group.aurora.id}"
    instance_class       = "db.r12.large"
    publicly_accessible  = false
}

resource "aws_eip" "eip" {
    vpc = true
}

resource "aws_eip_association" "assoc" {
    instance_id   = "${aws_instance.web.id}"
    allocation_id = "${aws_eip.eip.id}"
}

data "aws_route53_zone" "zone" {
    name     = "ecommerce.com"
}

resource "aws_route53_record" "record" {
    zone_id  = "${data.aws_route53_zone.zone.zone_id}"
    type="A"
    name     = "www.ecommerce.com"
    ttl      = 300
    records  = ["${aws_eip.eip.public_ip}"]
}           
terraform terraform-provider-aws terraform0.12+
1个回答
0
投票

这看起来像是沉浸式实验室任务,您所做的所有其他更正均未正确格式化:-)

© www.soinside.com 2019 - 2024. All rights reserved.