docker - 另一个脚本的 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
解决方案
您可以使用 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)
推荐阅读
- android - 如何为自定义 TextInputLayout 设置默认样式
- flutter - 扑; TextField RegExp 文本中不同位置的不同比例
- javascript - Node.js - 即使分配了全局变量,它也会退休
- r - 您如何遍历所有列以在 ggplot 中绘制多个系列?
- rust - 为什么我不能在 NEAR 合约中读取这个 HashMap?
- php - 根据 WooCommerce 结帐中的打开、关闭和休息时间添加具有时间间隔的选择字段
- html - 在页眉和页脚中创建超链接的问题
- c++ - 查找数组中乘积小于等于常数 k 的所有对
- vue.js - Vue Router 最佳实践:在商店或组件中重定向?
- python - 矩阵乘法,熊猫错误还是行为与我的预期不同?