我一直在尝试在 Azure 中对 Terraform 进行以下设置,但无济于事:
来自 Packer 创建的自定义 VM 映像的 Linux VM,附加了一个附加到所述 VM 的持久、托管和加密的数据磁盘,但它位于外部,以防我想使用更新(更新、安全)版本的自定义重新创建 VM图像,而不会丢失保存到外部磁盘的任何数据(想象数据库集群中的一个节点)。并继续执行以下操作:
- 最初,我尝试将
azurerm_managed_disk
and aazurerm_virtual_machine_data_disk_attachment
与 VM 资源一起使用,但问题是,如果您只是创建这样的磁盘(create_option
设置为Empty
),则该磁盘将未格式化、未分区和卸载。除非在 VM 上运行某些脚本,否则基本上无法使用。 - 我的想法是:好的,我将运行一个
cloud-init
或配置块的东西来分区/安装磁盘,就是这样。但是:如果我这样做,当我旋转虚拟机时,脚本将再次运行并重新格式化/分区磁盘,从而删除我可能保存的所有数据。 - 我还尝试使用 Packer 创建带有附加数据磁盘的自定义图像,并
FromImage
在azurerm_managed_disk
's中使用create_option
,但事实证明它仅在引用市场图像且不支持自定义图像时才有效
我现在能想到的唯一可行的事情是回到方法2
并制作一个更智能的脚本,该脚本仅在附加磁盘未分区时运行。
有没有我没有看到的替代方法?有人可以帮我验证这个想法吗?
我另外担心的是上述磁盘中的加密,因为我不知道在采用任何一种方法时这是否会成为一个问题。