サーバーのインストール後に cloud-init を使用してディスクを作成し、マウントする

サーバーのインストール後に cloud-init を使用してディスクを作成し、マウントする

VM 自体が作成された後に、cloud-init を実行してディスクを作成することは実際に可能ですか?

VMware プラットフォームで VM を作成しました。現在、VM を作成するための 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_setupとの追加部分のみを表示すれば十分でしょうかfs_setup?)

関連情報