Crear y montar un disco usando cloud-init después de instalar un servidor

Crear y montar un disco usando cloud-init después de instalar un servidor

¿Es realmente posible ejecutar cloud-init para crear un disco después de que se haya creado la VM?

Tengo una VM creada en una plataforma VMware. Actualmente, cloud-init no está habilitado en la GUI para crear máquinas virtuales. Estoy intentando adjuntar un disco recién creado. Esto aparece como sdb pero no está formateado ni montado.

Puedo crear el disco manualmente usando:

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

pero obviamente esto me deja con una instalación no reproducible, y preferiría que estas cosas estuvieran definidas en el archivo cloud-init.

Intenté incluir esto en el archivo 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']

luego ejecutándolo usando

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

que, según tengo entendido, ejecutará cloud-init como si se creara una instancia en la primera instalación de arranque. Confirmé que el archivo se está ejecutando mientras lo probé agregando una sección write_files para escribir un archivo de prueba exitosamente.

Sin embargo, la creación de este disco parece no surtir efecto.

(¿Realmente necesito incluir el disco preexistente o es suficiente mostrar solo las adiciones en disk_setupy fs_setup?)

información relacionada