【发布时间】:2021-10-22 09:39:05
【问题描述】:
在我的 terraform 中,我的 mysql 模块如下:
# create ssh tunnel to RDS instance
resource "null_resource" "ssh_tunnel" {
provisioner "local-exec" {
command = "ssh -i ${var.private_key} -L 3306:${var.rds_endpoint} -fN ec2-user@${var.bastion_ip} -v >./stdout.log 2>./stderr.log"
}
triggers = {
always_run = timestamp()
}
}
# create database
resource "mysql_database" "rds" {
name = var.db_name
depends_on = [null_resource.ssh_tunnel]
}
当我添加新模块并第一次运行terraform apply 时,它按预期工作。
但是当terraform apply 没有任何更改地运行时,我得到一个错误:
Could not connect to server: dial tcp 127.0.0.1:3306: connect: connection refused
如果我理解正确,配置器“local-exec”由于触发器设置而应该每次都执行脚本。你能解释一下它应该如何正常工作吗?
【问题讨论】:
-
进展如何?仍然不清楚发生了什么?
-
我刚刚实现了这个解决方案registry.terraform.io/modules/flaupretre/tunnel/ssh/latest 而不是使用'null_resource'
标签: terraform