通过 AWS ec2 实例上的用户数据使用 Terraform 设置 postgres conf 文件(pg_hba_conf + postgresql.conf)

通过 AWS ec2 实例上的用户数据使用 Terraform 设置 postgres conf 文件(pg_hba_conf + postgresql.conf)

我正在使用 Terraform 在 amazon ec2 上设置一个便宜的 postgres 服务器。

我知道在设置 ec2 实例时可以添加用户数据文件。我知道使用 terraform,我可以使用该file(..)函数提供该用户数据脚本文件。到目前为止一切顺利。

我的问题是我还想自动执行 pg 设置的最后步骤,即在同一用户数据脚本执行期间修改pg_hba.conf和文件。这可能吗?postgresql.conf

即,如果我pghbaconftpl.conf在其他 terraform 文件旁边创建一个文件,我可以cat pghbaconftpl.conf > /correct/path/to/pg_hba.conf在 ec2 用户数据脚本中执行此操作并期望它能正常工作吗?我不知道它如何工作。:-/

一般来说,是否可以注入可以从用户数据脚本启动的其他脚本文件?如果可以,怎么做?

任何帮助均感激不尽。

答案1

您可以使用模板文件函数来创建所需文件的模板。

或者,您可以使用 remote-exec 在远程文件上运行您想要的任何内容

remote-exec 配置程序在创建远程资源后调用该资源上的脚本。这可用于运行配置管理工具、引导到集群等。要调用本地进程,请参阅 local-exec 配置程序。remote-exec 配置程序需要连接,并支持 ssh 和 winrm。

所以你可以

... 
 provisioner "remote-exec" {
    inline = [
       "cat pghbaconftpl.conf > /correct/path/to/pg_hba.conf"
    ]
  }

或者您想要在远程实例上运行的任何其他内容。您可以指向一个 shell 脚本,从您的 terraform repo 复制一个文件,将其模板化到远程实例上的某个位置并运行它。

这两种方法取决于您到底想做什么。

相关内容