我使用以下代码创建了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"
}
答案 0 :(得分:0)
您应该考虑使用Terraform local-exec
或remote-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部分。