我已经使用Terraform一段时间了,并且对使用它和VMware和Azure提供商很满意 .
目前,我需要在Azure中使用静态IP地址配置VM . 试图用静电来谈论它们,但是我使用了安全锤,我无法转向 .
虽然我可以在子网中分配一些并将它们提供给Terraform(我使用ansible来驱动Terraform),但我想知道是否有其他人在Azure中解决了这个问题并且可能有很好的想法 .
我认为,主要问题是并发性 . 我需要一种在子网中自动“分配”IP的方法,并确保即使需要一段时间来构建VM并开始使用该地址,也不会同时运行其他配置请求 .
在私有数据中心,我会使用IPAM解决方案 . 在Azure中我没有可用的 . 寻找严格执行Azure Terraform Ansible的想法
3 回答
我觉得没问题 . 我有一些sample code用于切片我在实际工作中使用的子网 .
我使用cidrsubnet从虚拟LAN地址空间计算子网,使用cidrhost将私有IP分配给主机 . 有一个非常好的教程here .
显然,分配静态IP在自动缩放等方案中不起作用 .
实现此目的的一种方法是在Terraform中使用cidrhost插值 .
您可以使用它每次创建相同的私有IP地址 . 其中一个例子如下:
上面的示例应该为您提供10.100.0.60的私有IP
我也使用terraform内置函数来刻录ip地址,但我也理解你的问题,我不明白答案,这并不保证不会使用ip . 您似乎还需要一个变量作为ip地址从部署系统推送到迭代而不是重叠ip地址 .
我很想知道上面答案的完整解决方案 .
无论如何,我有一个创建环境的模块,我使用下面的例子来获取静态IP地址,如果你重新运行模块,但它会将静态IP地址反转为动态,然后回到静态:)
然而,我自己的答案是首先创建一个设置为静态的nic,然后再使用动态IP地址创建相同的nic,如下所示: