Files
terraform-course/jenkins-packer-demo/instance.tf
T
2022-05-09 14:07:38 -04:00

68 lines
1.5 KiB
Terraform

data "aws_ami" "ubuntu" {
most_recent = true
filter {
name = "name"
values = ["ubuntu/images/hvm-ssd/ubuntu-bionic-18.04-amd64-server-*"]
}
filter {
name = "virtualization-type"
values = ["hvm"]
}
owners = ["099720109477"] # Canonical
}
resource "aws_instance" "jenkins-instance" {
ami = data.aws_ami.ubuntu.id
instance_type = "t2.small"
# the VPC subnet
subnet_id = aws_subnet.main-public-1.id
# the security group
vpc_security_group_ids = [aws_security_group.jenkins-securitygroup.id]
# the public SSH key
key_name = aws_key_pair.mykeypair.key_name
# user data
user_data = data.cloudinit_config.cloudinit-jenkins.rendered
# iam instance profile
iam_instance_profile = aws_iam_instance_profile.jenkins-role.name
}
resource "aws_ebs_volume" "jenkins-data" {
availability_zone = "eu-west-1a"
size = 20
type = "gp2"
tags = {
Name = "jenkins-data"
}
}
resource "aws_volume_attachment" "jenkins-data-attachment" {
device_name = var.INSTANCE_DEVICE_NAME
volume_id = aws_ebs_volume.jenkins-data.id
instance_id = aws_instance.jenkins-instance.id
skip_destroy = true
}
resource "aws_instance" "app-instance" {
count = var.APP_INSTANCE_COUNT
ami = var.APP_INSTANCE_AMI
instance_type = "t2.micro"
# the VPC subnet
subnet_id = aws_subnet.main-public-1.id
# the security group
vpc_security_group_ids = [aws_security_group.app-securitygroup.id]
# the public SSH key
key_name = aws_key_pair.mykeypair.key_name
}