github.com/danp/terraform@v0.9.5-0.20170426144147-39d740081351/builtin/providers/cobbler/acceptance_env/main.tf (about)

     1  # This will spin up an instance and install cobbler onto it so we can run
     2  
     3  # the Terraform acceptance tests against it.
     4  
     5  module "ami" {
     6    source        = "github.com/terraform-community-modules/tf_aws_ubuntu_ami/ebs"
     7    region        = "us-west-2"
     8    distribution  = "trusty"
     9    instance_type = "t2.nano"
    10  }
    11  
    12  module "vpc" {
    13    source = "github.com/terraform-community-modules/tf_aws_vpc"
    14  
    15    name            = "cobbler"
    16    cidr            = "10.0.0.0/16"
    17    private_subnets = "10.0.1.0/24"
    18    public_subnets  = "10.0.101.0/24"
    19    azs             = "us-west-2a"
    20  }
    21  
    22  resource "aws_key_pair" "cobbler" {
    23    key_name   = "tf-cobbler-acctests"
    24    public_key = "${file("~/.ssh/id_rsa.pub")}"
    25  }
    26  
    27  resource "aws_security_group" "cobbler" {
    28    vpc_id = "${module.vpc.vpc_id}"
    29  
    30    ingress {
    31      protocol    = "tcp"
    32      from_port   = 22
    33      to_port     = 22
    34      cidr_blocks = ["0.0.0.0/0"]
    35    }
    36  
    37    egress {
    38      protocol    = "-1"
    39      from_port   = 0
    40      to_port     = 0
    41      cidr_blocks = ["0.0.0.0/0"]
    42    }
    43  }
    44  
    45  resource "aws_instance" "cobbler" {
    46    instance_type          = "t2.medium"
    47    ami                    = "${module.ami.ami_id}"
    48    subnet_id              = "${module.vpc.public_subnets}"
    49    key_name               = "${aws_key_pair.cobbler.id}"
    50    vpc_security_group_ids = ["${aws_security_group.cobbler.id}"]
    51  
    52    root_block_device {
    53      volume_type = "gp2"
    54      volume_size = 40
    55    }
    56  
    57    connection {
    58      user = "ubuntu"
    59    }
    60  
    61    provisioner "remote-exec" {
    62      inline = <<-WAIT
    63  while [ ! -f /var/lib/cloud/instance/boot-finished ]; do echo 'Waiting for cloud-init...'; sleep 1; done
    64      WAIT
    65    }
    66  
    67    provisioner "remote-exec" {
    68      script = "${path.module}/deploy.sh"
    69    }
    70  }
    71  
    72  output "ssh" {
    73    value = "ubuntu@${aws_instance.cobbler.public_ip}"
    74  }