使用cloud-init禁用azure vm上的临时磁盘

时间:2019-04-10 18:16:54

标签: azure packer cloud-init

Azure上的Ubuntu计算机获得了临时磁盘,该磁盘已自动安装在/mnt

我不想在/mnt上使用此临时驱动器,而是禁用它或将其移动到另一个位置。

我正在使用打包程序在Azure上创建基本图像。

我试图像这样通过cloud-init实现这一目标:

mounts:
  - [/dev/sdb, null]

以及与AWS一样:

mounts:
  - [ephemeral0, null]

但是没有帮助,所以我尝试编辑waagent.conf并重新启动计算机,如下所示: sed -i '/s/ResourceDisk.MountPoint=.*/ResourceDisk.MountPoint=\/ephemeral/' /etc/waagent.conf 但这也不能解决问题...

最终,我想用cloud-init解决它,因为我想在/mnt上安装另一个驱动器(持久数据),但是任何解决方案都可以。

谢谢

2 个答案:

答案 0 :(得分:1)

为了完全覆盖Azure的默认安装,您必须同时覆盖ephemeral0和ephemeral0.1。

这非常适合Azure:

#cloud-config
mounts:
  - [ ephemeral0 ]
  - [ ephemeral0.1 ]

AWS以不同的顺序使用配置模块,而我无法为其短暂的NVME磁盘定义安装点。如果您使用的是非NVME磁盘,则临时BlockDeviceMapping可能会为您提供帮助。

编辑:根据我的经验,如果您使用cloud-init,则应禁用waagent以避免奇怪的错误配置。

答案 1 :(得分:0)

Azure上的Ubuntu机器支持cloud-init, 因此,使用一些cloud-init命令在/etc/cloud/cloud.cfg.d/xyz.cfg下创建一个简单文件非常容易。

在这种情况下, 将临时驱动器安装到空点(或换句话说,不要安装)。

cat << 'EOF' > /etc/cloud/cloud.cfg.d/01-mounts.cfg
mounts:
  - [ ephemeral0, null ]
EOF