首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >连接带有服务器名称的公共IP输出

连接带有服务器名称的公共IP输出
EN

Stack Overflow用户
提问于 2019-03-11 09:27:36
回答 2查看 847关注 0票数 0

我编写了一个Terraform脚本来创建一些Azure虚拟机。

创建VM的数量是基于我的type文件中的一个名为.tfvars的变量:

type = [ "Master-1", "Master-2", "Master-3", "Slave-1", "Slave-2", "Slave-3" ]

我的variables.tf文件包含以下local

count_of_types = "${length(var.type)}"

我的resources.tf文件包含了根据以下信息实际创建相关VM数量所需的代码:

代码语言:javascript
复制
resource "azurerm_virtual_machine" "vm" {
  count                 = "${local.count_of_types}"
  name                  = "${replace(local.prefix_specific,"##TYPE##",var.type[count.index])}-VM"
  location              = "${azurerm_resource_group.main.location}"
  resource_group_name   = "${azurerm_resource_group.main.name}"
  network_interface_ids = ["${azurerm_network_interface.main.*.id[count.index]}"]
  vm_size               = "Standard_B2ms"
  tags                  = "${local.tags}"

最后,在我的output.tf文件中,输出每个服务器的IP地址:

代码语言:javascript
复制
output "public_ip_address" {
  value = ["${azurerm_public_ip.main.*.ip_address}"]
}

我正在创建一个Kubernetes集群,包含1xMaster和1x从VM。为此目的,脚本工作良好-第一个IP输出是主IP输出,第二个IP输出是从IP输出。

但是,当我总共迁移到8+ VM时,我想知道哪个IP引用哪个VM。

是否有一种方法可以修改我的输出以包括本地的type,或者只包括服务器的主机名和公共IP?

例如54.10.31.100 // Master-1

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-03-11 09:52:09

看看formatlist (它是字符串操作的函数之一),它可以用于迭代实例属性、列表标记和其他感兴趣的属性。

代码语言:javascript
复制
output "ip-address-hostname" {
  value = "${
      formatlist(
        "%s:%s",
        azurerm_public_ip.resource_name.*.fqdn,
        azurerm_public_ip.resource_name.*.ip_address
      )
    }"
}

注意,这只是一个伪代码草案。您可能必须对此进行调整,并在TF文件中创建其他数据源以获得有效的枚举。

提供更多阅读资料- https://www.terraform.io/docs/configuration/functions/formatlist.html

票数 3
EN

Stack Overflow用户

发布于 2019-03-11 14:13:05

Raunak Jhawar's answer把我指向正确的方向,因此得到了绿色的滴答。

作为参考,下面是我最后使用的确切代码:

代码语言:javascript
复制
output "public_ip_address" {
  value = "${formatlist("%s: %s", azurerm_virtual_machine.vm.*.name, azurerm_public_ip.main.*.ip_address)}"
}

这导致了以下产出:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55098721

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档