我想要使用 Terraform 配置一个 Azure VM,并使用 Packer 创建的自定义 AMI 对其进行配置。
我想要一个附加的、快照的、可管理的数据磁盘。
我想使用 Oracle Linux 7.4
什么是最好的方式
- 确保数据磁盘在启动时已挂载
- 确保在尝试挂载数据磁盘之前对其进行格式化,也许在启动时对其进行格式化
我可能会启动一组相同的机器,每台机器都连接有数据磁盘,因此事后通过 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 等配置管理工具。