一旦Terraform启动Mysql,就可以在Mysql中执行任何操作。如何运行RDS的provisioner?
我已经使用terraform启动了一个RDS实例,现在我想在其中创建一个用户和DB,基本上,在其中运行一些查询。那么我们如何才能做到这一点呢一旦Terraform启动Mysql,就可以在Mysql中执行任何操作。如何运行RDS的provisioner?,mysql,amazon-web-services,terraform,rds,Mysql,Amazon Web Services,Terraform,Rds,我已经使用terraform启动了一个RDS实例,现在我想在其中创建一个用户和DB,基本上,在其中运行一些查询。那么我们如何才能做到这一点呢 谢谢根据您想要更改的内容,有两个选项 您可以使用本地exec provisioner 基本上,您只需在aws\u db\u实例中添加类似的内容即可定义: provisioner "local-exec" { command = "your great command line!" } 请记住,此选项有一个很大的限制,provisioner仅在
谢谢根据您想要更改的内容,有两个选项
- 您可以使用本地exec provisioner李>
provisioner "local-exec" {
command = "your great command line!"
}
请记住,此选项有一个很大的限制,provisioner仅在第一次创建资源后执行一次
- 您可以使用特定的Terraform提供程序,如MySQL或PostgreSQL
如果要基于本地文件更改运行命令,另一种方法是使用在sql更改时触发的
resource "null_resource" "setup_db" {
depends_on = ["aws_db_instance.my_db"] #wait for the db to be ready
triggers = {
file_sha = "${sha1(file("file.sql"))}"
}
provisioner "local-exec" {
command = "mysql -u ${aws_db_instance.my_db.username} -p${var.my_db_password} -h ${aws_db_instance.my_db.address} < file.sql"
}
}
resource“null\u resource”“setup\u db”{
dependens_on=[“aws_db_instance.my_db”]#等待数据库准备就绪
触发器={
file_sha=“${sha1(file(“file.sql”))}”
}
供应人“本地执行官”{
command=“mysql-u${aws\u db\u instance.my\u db.username}-p${var.my\u db\u password}-h${aws\u db\u instance.my\u db.address}