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"] }