首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自动执行吗??应用rds参数组中的更改,重新引导rds,并应用另一个更改。

自动执行吗??应用rds参数组中的更改,重新引导rds,并应用另一个更改。
EN

Stack Overflow用户
提问于 2018-10-23 06:09:25
回答 1查看 1.5K关注 0票数 1

我们的基础设施作为代码正在使用terraform。

我想通过terraform创建一个新的postgreSQL数据库,启用pgaudit日志。

以下aws文档使用pgaudit扩展插件

它还有额外的步骤:

  • 步骤1 CREATE ROLE rds_pgaudit

因此,我需要先等待rds实例状态可用,然后对这个新数据库(在vpc中)运行一个sql命令。

但是如何在terraform中运行这个sql命令呢?

  • 步骤2.修改参数组

我可以通过资源aws_db_parameter_group实现这一点,设置变量parameters

  • 步骤3.重新启动实例

不确定如何使用地形,由提供程序local-execremote-exec

  • 步骤4~6更多sql命令

似乎我需要等待数据库返回到available状态,然后我可以运行sql脚本。那怎么跑?

有什么建议吗?

EN

回答 1

Stack Overflow用户

发布于 2018-10-23 06:31:45

您可以使用remote-exec或local -exec(如果RDS是可公开的,并且可以从本地计算机到达RDS )。

远程-Exec:

代码语言:javascript
复制
resource "aws_instance" "remote_execution_server" 
{
 provisioner "remote-exec" {
 inline = [
  "Download the sql related script from S3"
  "aws s3 cp s3://your_bucket/sql.sh /home/ec2-user/",
  "sh /home/ec2-user/sql.sh",
  ]
 }
}

在terraform中添加此代码段,这将启动一个新服务器,作为RDS更新/创建的一部分,并运行sql查询。确保将RDS凭据作为sql.sh脚本连接到RDS的参数提供。

参考文献:https://www.terraform.io/docs/provisioners/remote-exec.html#script

当地-主管:

如果您的RDS是可公开访问的,或者是可以从本地机器访问的,那么您就不需要启动一个新的实例来运行sql查询。只需准备好执行sql查询的命令,包括RDS用户凭据。

代码语言:javascript
复制
resource "aws_instance" "web" {
# ...

    provisioner "local-exec" {
    command = "echo ${aws_instance.web.private_ip} >> private_ips.txt"
  }
}

参考文献:https://www.terraform.io/docs/provisioners/local-exec.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52942185

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档