【发布时间】:2016-11-10 08:55:11
【问题描述】:
我有一台服务器,用于对 consul 集群进行自我修复和自动扩展。它通过 consul watch 和运行状况检查运行的 terraform 脚本来做到这一点。
我想添加一个额外的备份 terraform 服务器以进行故障转移。为此,我必须在我的服务器之间共享 terraform.tfstate 和 terraform.tfstate.backup,以便它们可以在相同的资源上运行 terraform。我想使用Terraform "COMMAND: REMOTE CONFIG" 分享这些文件,但我不清楚如何开始分享。
基本上,我希望terraform.tfstate 和terraform.tfstate.backup 文件在两台服务器上始终保持同步。这是我设置它的尝试。请注意,两个 terraform 服务器都在运行连接到我的 consul 集群其余部分的 consul 客户端:
terraform remote config \
-backend=consul \
-backend-config="address=localhost:8500" \
-backend-config="path=/consul-scripts/terr/terraform.tfstate" \
-backend-config="backup=/consul-scripts/terr/terraform.tfstate.backup" \
-path="/consul-scripts/terr/terraform.tfstate" \
-backup="/consul-scripts/terr/terraform.tfstate.backup" \
-address="localhost:8500"
但这显然是错误的语法。尝试运行链接文档中提供的领事示例时,我收到以下输出:
username@hostname:/consul-scripts/terr$ terraform remote config \
> -backend=consul \
> -backend-config="address=localhost:8500" \
> -backend-config="path=/consul-scripts/terr/terraform.tfstate"
Error writing backup state file: open terraform.tfstate.backup: permission denied
我想让我的 terraform 服务器通过 Terraform “COMMAND: REMOTE CONFIG”而不是像 glusterfs 之类的普通文件共享系统同步。
如何以这种方式正确同步我的 terraform 文件?
【问题讨论】:
-
该错误消息表明您的远程配置命令足够正确,以至于 Terraform 尝试启用远程状态,但是无论您正在运行
terraform的任何用户都没有创建或更新terraform.tfstate.backup本地文件系统中的文件。
标签: file-sharing consul terraform