首页 > 解决方案 > 另一个脚本的 terraform 输出

问题描述

我是 terraform 和 jenkins 的新手,我创建了 docker 映像,我在 ecs-cli 的帮助下将其推送到 ecs 中,并且我还为 graylog 创建了另一个实例(来自此链接),现在我想发送 java 系统记录到 graylog 实例,为此我需要在 java 容器中进行一些更改,这需要 graylog 实例 ip。

output "instance_ips" {
value = "${aws_instance.web.public_ip}"}

借助上面的代码,我现在可以获取 graylog 服务器的 ip,我很困惑如何在另一台服务器上 ssh 并更新 ip,以便我可以获取 java 系统日志,或者我需要编写一个 terraform 脚本运行容器而不是使用 ecs-cli

注意:最重要的是我试图自动化这个过程,所以我不能以手动方式做。例如,将 graylog ip 和 ssh 复制到 java 应用程序中并更新 ip

标签: dockersshterraformamazon-ecs

解决方案


您可以使用 Terraform供应商

使用remote-exec 配置器执行graylog-ctl set-external-ip ${aws_instance.web.public_ip}

使用local-exec 配置器写入本地配置文件,然后使用文件配置器将更新的配置文件上传到您的服务器。或者只是使用文件配置器设置内容并将其推送到您的服务器。

如果您确实需要通过 SSH 连接到服务器并运行该graylog-ctl set-external-ip命令,您可以编写一个 bash 脚本,您可以使用如下terraform output instance_ips命令执行该脚本

external_ip=$(terraform output instance_ips)


推荐阅读