46 lines
1.6 KiB
Terraform
46 lines
1.6 KiB
Terraform
|
resource "aws_db_instance" "mariadb" {
|
||
|
allocated_storage = 20
|
||
|
storage_type = "gp2"
|
||
|
engine = "mariadb"
|
||
|
engine_version = "10.6.14"
|
||
|
instance_class = "db.t3.micro"
|
||
|
db_name = var.db_name
|
||
|
username = var.db_username
|
||
|
password = var.db_password
|
||
|
port = var.db_port
|
||
|
skip_final_snapshot = true
|
||
|
vpc_security_group_ids = [aws_security_group.rds.id]
|
||
|
db_subnet_group_name = aws_db_subnet_group.private.name
|
||
|
}
|
||
|
|
||
|
resource "aws_instance" "ec2_instance" {
|
||
|
instance_type = "t3.micro"
|
||
|
ami = data.aws_ami.ubuntu_22_04.id
|
||
|
subnet_id = aws_subnet.public.id
|
||
|
vpc_security_group_ids = [aws_security_group.ec2.id]
|
||
|
key_name = aws_key_pair.ansible.key_name
|
||
|
lifecycle {
|
||
|
ignore_changes = [ami]
|
||
|
}
|
||
|
provisioner "local-exec" {
|
||
|
command = "ansible-playbook -u ubuntu --private-key='${var.private_key}' -i '${aws_instance.ec2_instance.public_ip},' --extra-vars 'web_public_ip=${aws_instance.ec2_instance.public_ip} db_address=${aws_db_instance.mariadb.address} db_name=${var.db_name} db_username=${var.db_username} db_password=${var.db_password} db_port=${var.db_port}' ansible/all.yml"
|
||
|
interpreter = ["/bin/bash", "-c"]
|
||
|
environment = {
|
||
|
ANSIBLE_HOST_KEY_CHECKING = "False"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
data "aws_ami" "ubuntu_22_04" {
|
||
|
most_recent = true
|
||
|
filter {
|
||
|
name = "name"
|
||
|
values = ["ubuntu/images/hvm-ssd/ubuntu-jammy-22.04-amd64-server-*"]
|
||
|
}
|
||
|
filter {
|
||
|
name = "virtualization-type"
|
||
|
values = ["hvm"]
|
||
|
}
|
||
|
owners = ["099720109477"]
|
||
|
}
|