Terraform 如何针对新节点注册领事服务?
我正在使用Terraform向Chef提供新节点,并在启动时针对该节点运行一系列食谱。在某些节点上,我希望在它们上注册领事服务。我遇到的问题是,当领事供应器尝试运行时,领事没有运行Terraform 如何针对新节点注册领事服务?,terraform,Terraform,我正在使用Terraform向Chef提供新节点,并在启动时针对该节点运行一系列食谱。在某些节点上,我希望在它们上注册领事服务。我遇到的问题是,当领事供应器尝试运行时,领事没有运行 我是否正确使用领事供应器?似乎我可以针对现有的领事代理创建服务,但不能针对新的领事代理创建服务。如果我理解正确,您有鸡和蛋的问题,因此这意味着无法在一次申请中完成 您必须创建两个地形状态(目录) 在第一个示例中,您使用适当的terraform输出创建服务器,并配置远程状态(如果您在AWS中,S3是一个不错的选择,如果
我是否正确使用领事供应器?似乎我可以针对现有的领事代理创建服务,但不能针对新的领事代理创建服务。如果我理解正确,您有鸡和蛋的问题,因此这意味着无法在一次申请中完成 您必须创建两个地形状态(目录) 在第一个示例中,您使用适当的terraform输出创建服务器,并配置远程状态(如果您在AWS中,S3是一个不错的选择,如果您已经有另一个Concur群集,则可以使用Concur后端) 在第二个示例中,您使用远程状态来检索输出(我在这里使用concur作为后端,但您可以使用另一个) 然后应用第一种状态,当实例正确部署时,可以应用第二种状态 参考:
哇。。。我不知道这件事。让我在未来几天内试一试。谢谢我想我的下一个问题是,为什么会有这样一家领事馆?除非我没有充分考虑这一点,但如果要在新节点上注册服务,则在consur完全在节点上运行之前,没有办法做到这一点。
resource "aws_instance" "instance" {
ami = "ami-eed00d97"
instance_type = "t2.micro"
}
output "service" { value = "awesome_service"}
data "terraform_remote_state" "instance" {
backend = "consul"
config {
path = "terraform/services"
}
}
resource "consul_keys" "service" {
key {
name = "${data.terraform_remote_state.instance.service}"
path = "service/awesome"
default = "url"
}
}