Azure:如何在虚拟机启动时连接数据磁盘,必要时进行格式化

Azure:如何在虚拟机启动时连接数据磁盘,必要时进行格式化

我想要使​​用 Terraform 配置一个 Azure VM,并使用 Packer 创建的自定义 AMI 对其进行配置。

我想要一个附加的、快照的、可管理的数据磁盘。

我想使用 Oracle Linux 7.4

什么是最好的方式

  1. 确保数据磁盘在启动时已挂载
  2. 确保在尝试挂载数据磁盘之前对其进行格式化,也许在启动时对其进行格式化

我可能会启动一组相同的机器,每台机器都连接有数据磁盘,因此事后通过 ssh 登录是不可行的。

答案1

首先,您无法将快照附加到 VM,Azure 不支持此功能。

您可以将现有的托管数据磁盘附加到虚拟机,您可以检查一下例子

storage_data_disk {
    name            = "${data.azurerm_managed_disk.datasourcemd.name}"
    managed_disk_id = "${data.azurerm_managed_disk.datasourcemd.id}"
    create_option   = "Attach"
    lun             = 1
    disk_size_gb    = "${data.azurerm_managed_disk.datasourcemd.disk_size_gb}"
  }

我可能会启动一组相同的机器,每台机器都连接有数据磁盘,因此事后通过 ssh 登录是不可行的。

您可以使用 Azure 自定义脚本扩展来执行此操作,您需要编写一个脚本来在您的 VM 上挂载磁盘,然后使用自定义脚本扩展来执行该脚本。

您可以使用另一种方法remote-exec来做到这一点,检查一下回答

答案2

可以使用 Terraform 创建磁盘并将其附加到虚拟机。

为了实际安装和格式化它,这需要在虚拟机内部进行,因此您可以考虑使用自定义脚本扩展或者您可以查看诸如 Puppet、Chef、Ansible 等配置管理工具。

相关内容