お家で始める仮想化環境 Proxmox VE Cloud-init編

目次

環境

前提として、Proxmoxの基本的な構築が完了している必要があります。
Proxmox環境の構築方法はこちらをご覧ください。

また、Cloud-init Supportを参考にしています。

Cloud-initテンプレートの準備

本記事では、VMで使用するOSとしてUbuntuを使用します。
https://cloud-images.ubuntu.com/でOpenstack向けのCloud-initに対応したイメージが配布されていますので、こちらを利用します。

Proxmoxホストのシェルにログインして、上記イメージをダウンロードします。
今回はUbuntu 20.04 LTSを使用しますので、こちらをダウンロードしました。

1
# wget https://cloud-images.ubuntu.com/focal/current/focal-server-cloudimg-amd64.img

続いて、テンプレートで使用するためのVMを作成します。

1
# qm create 9000 --memory 2048 --net0 virtio,bridge=vmbr0

先ほどダウンロードしたイメージをインポートします。
以下の例では対象ディスクをlocal-lvmとしていますが、適時変更してください。(local-zfsなど)

1
# qm importdisk 9000 focal-server-cloudimg-amd64.img local-lvm

インポートしたディスクをscsi0としてVMにアタッチします。
先ほどと同様に、local-lvmvm-9000-disk-0は環境によって異なる場合がありますので、適時変更してください。

1
# qm set 9000 --scsihw virtio-scsi-pci --scsi0 local-lvm:vm-9000-disk-0

続いて、Cloud-initが利用するCDROMドライブを設定します。

1
# qm set 9000 --ide2 local-lvm:cloudinit

先ほどアタッチしたディスクをブートディスクとして設定します。

1
# qm set 9000 --boot c --bootdisk scsi0

Cloud-initはシリアルコンソールを使用するため、その設定をします。

1
# qm set 9000 --serial0 socket --vga serial0

最後に、テンプレートに変換します。

1
# qm template 9000

Cloud-initテンプレートからのデプロイ

先ほど作成したテンプレートを使用して、VMのデプロイを行ってみます。
普段はWebGUIから操作することが多いので、WebGUIから操作することにします。
作成したテンプレートを右クリックするとCloneの項目がありますので選択します。
ダイアログが表示されますので、VM IDNameを入力し、ModeFull Cloneを選択します。

入力出来たら、右下のCloneを押して処理が完了するのを待ちます。

処理が完了したら、クローンしたVMより、Cloud-initメニューを開きます。

必要に応じて、各項目を設定します。

  • User
  • Password
  • DNS domain
  • DNS servers
  • SSH public key
  • IP Config

設定が完了したら、VMを起動します。
起動完了後、しばらく待っているとCloud-initの処理が行われます。
ログが表示されますので、処理が完了するのを待ってログインしてみてください。
設定した内容が反映されているはずです。

複数のVMをデプロイしたい場合も、作成したテンプレートからクローンすることで簡単にデプロイすることが出来ます。