【问题标题】:Terraform - Is there any way to capture the shell script output (from remote vm) and store it in Terraform output (state file on local/consul)?Terraform - 有什么方法可以捕获 shell 脚本输出(来自远程虚拟机)并将其存储在 Terraform 输出(本地/领事上的状态文件)中?
【发布时间】:2018-05-14 02:02:35
【问题描述】:

我正在使用 Terraform(例如 AWS EC2 VM)创建云基础设施,在创建 VM 之后,我正在使用配置程序(remote-exec)在远程 VM 上运行 shell 脚本。

有什么方法可以捕获 shell 脚本输出(来自远程虚拟机)并将其存储在 Terraform 输出中(本地/consul 上的状态文件)?

我已经尝试过 Terraform 的“外部数据源”,但我猜它只适用于本地脚本(不适用于远程 vm 脚本)。如果我错了,请纠正我。

谢谢

【问题讨论】:

    标签: terraform


    【解决方案1】:

    Terraform 中的创建时间或销毁时间供应商仅在资源创建/销毁期间应用一次,而不是在更新或任何其他生命周期期间应用。因此,provisioners 的输出在 terraform 状态下将不可用。

    参考:https://www.terraform.io/docs/provisioners/index.html

    【讨论】:

      【解决方案2】:

      https://github.com/matti/terraform-shell-resource 模块将临时文件的输出捕获到触发器中,并将它们存储在状态中。同样的模式也可能适用于远程执行?或者,然后只需使用 local-exec 在远程运行命令。

      【讨论】:

        猜你喜欢
        • 2021-09-18
        • 2020-05-01
        • 2021-11-23
        • 1970-01-01
        • 2019-12-05
        • 2021-03-02
        • 2021-12-18
        • 2023-04-07
        • 2022-10-23
        相关资源
        最近更新 更多