Ist es tatsächlich möglich, Cloud-Init auszuführen, um eine Festplatte zu erstellen, nachdem die VM selbst erstellt wurde?
Ich habe eine VM auf einer VMware-Plattform erstellt. Derzeit ist Cloud-Init auf der GUI zum Erstellen von VMs nicht aktiviert. Ich versuche, eine neu erstellte Festplatte anzuschließen. Diese wird als SDB angezeigt, ist aber nicht formatiert oder gemountet.
Ich kann die Festplatte manuell erstellen mit:
fdisk /dev/sdb
mkfs -t ext4 /dev/sdb1
mount /dev/sdb1 /data
aber das führt offensichtlich dazu, dass ich eine nicht reproduzierbare Installation habe und ich hätte diese Dinge lieber in der Cloud-Init-Datei definiert.
Ich habe versucht, dies in die Cloud-Init-Datei aufzunehmen:
# 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']
Führen Sie es dann mit
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
was meines Wissens nach Cloud-Init ausführt, als wäre es bei der ersten Boot-Installation instanziiert worden. Ich habe bestätigt, dass die Datei ausgeführt wird, da ich dies getestet habe, indem ich einen Abschnitt write_files hinzugefügt habe, um erfolgreich eine Testdatei zu schreiben.
Allerdings scheint die Datenträgererstellung nicht wirksam zu sein.
(Muss ich tatsächlich die bereits vorhandene Festplatte einschließen oder reicht es, nur Ergänzungen in disk_setup
und anzuzeigen fs_setup
?)