如何使用Terraform在EC2实例中创建MySQL数据库

时间:2019-03-22 11:36:20

标签: terraform

我使用以下代码创建了EC2和My sql实例,并成功执行了。如果有多个正在运行的程序,如果需要在特定的ec2实例中创建mysql数据库,该怎么办?我可以在aws console中看到db-instance。即使控制台中提供了创建数据库的选项,我也需要通过Terraform代码执行。

resource "aws_instance" "DB-Server"
 {
  ami = "ami-051f75c6"
  instance_type = "t2.micro"
  key_name="Key-pair
}
resource "aws_db_instance" "default"
 {
   allocated_storage    = 20
   storage_type         = "gp2"
   engine               = "mysql"
   engine_version       = "5.7"
   instance_class       = "db.t2.micro"
   name                 = "mydb"
   username             = "username"
   password             = "XXXX"
   `enter code here`parameter_group_name = "default.mysql5.7"
}

2 个答案:

答案 0 :(得分:0)

您应该考虑使用Terraform local-execremote-exec供应商。它允许您执行bash可以做的任何事情。 Terraform代码完成EC2实例的启动后,您将调用本地/远程exec,该exec运行脚本来安装MySQL。

答案 1 :(得分:0)

由于您说过要使用Terraform在自己的EC2实例上安装MySQL,因此建议您使用EC2的user_data功能。用户数据允许您定义脚本,以在部署EC2实例时执行安装或配置。 Terraform像这样提供了挂钩。

resource "aws_instance" "web" {
  ami           = "${data.aws_ami.ubuntu.id}"
  instance_type = "t2.micro"
  user_data = <<-EOF
                #!/bin/bash
                yum install -y mysql56-server
              EOF
  tags = {
    Name = "HelloWorld"
  }
}

以上是执行任务的一种非常简单的方法。您只需要根据需要自定义user_data部分。