服务器安装后使用 cloud-init 创建并挂载磁盘

服务器安装后使用 cloud-init 创建并挂载磁盘

在创建虚拟机本身后,是否实际上可以运行 cloud-init 来创建磁盘?

我在 VMware 平台上创建了一个虚拟机。目前,用于创建虚拟机的 GUI 上未启用 cloud-init。我正在尝试附加一个新创建的磁盘。它显示为 sdb,但尚未格式化或挂载。

我可以使用以下方法手动创建磁盘:

fdisk /dev/sdb
mkfs -t ext4 /dev/sdb1
mount /dev/sdb1 /data

但显然这会让我的安装无法重现,我宁愿在 cloud-init 文件中定义这些内容。

我已尝试将其包含在 cloud-init 文件中:

# Disk
resize_rootfs: false

disk_setup:
#  /dev/sda:
#    table_type: 'mbr'
#    layout: true
#    overwrite: false
  /dev/sdb:
    table_type: 'mbr'
    layout: true
    overwrite: false

fs_setup:
#  - label: root_fs
#    filesystem: 'ext4'
#    device: /dev/sda
#    partition: auto
#    overwrite: false
  - label: data1
    filesystem: 'ext4'
    device: /dev/sdb
    partition: auto
    overwrite: false

mounts:
  - ['/dev/sdb1', '/data']

然后使用运行它

sudo DI_LOG=stderr /usr/lib/cloud-init/ds-identify --force
sudo cloud-init clean --logs
sudo cloud-init init --local
sudo cloud-init init

据我所知,它将运行 cloud-init,就像在首次启动安装时实例化一样。我已确认该文件正在运行,因为我已通过添加 write_files 部分成功写入测试文件来进行测试。

但这个磁盘创建好像没有生效。

(我是否实际上需要包含预先存在的磁盘,或者仅显示和中的添加内容就足够了disk_setupfs_setup

相关内容