目次
環境
前提として、Proxmoxの基本的な構築が完了している必要があります。
Proxmox環境の構築方法はこちらをご覧ください。
また、Cloud-init Supportを参考にしています。
Cloud-initテンプレートの準備
本記事では、VMで使用するOSとしてUbuntuを使用します。
https://cloud-images.ubuntu.com/でOpenstack向けのCloud-initに対応したイメージが配布されていますので、こちらを利用します。
Proxmoxホストのシェルにログインして、上記イメージをダウンロードします。
今回はUbuntu 20.04 LTSを使用しますので、こちらをダウンロードしました。
# wget https://cloud-images.ubuntu.com/focal/current/focal-server-cloudimg-amd64.img
続いて、テンプレートで使用するためのVMを作成します。
# qm create 9000 --memory 2048 --net0 virtio,bridge=vmbr0
先ほどダウンロードしたイメージをインポートします。
以下の例では対象ディスクをlocal-lvm
としていますが、適時変更してください。(local-zfs
など)
# qm importdisk 9000 focal-server-cloudimg-amd64.img local-lvm
インポートしたディスクをscsi0
としてVMにアタッチします。
先ほどと同様に、local-lvm
やvm-9000-disk-0
は環境によって異なる場合がありますので、適時変更してください。
# qm set 9000 --scsihw virtio-scsi-pci --scsi0 local-lvm:vm-9000-disk-0
続いて、Cloud-initが利用するCDROMドライブを設定します。
# qm set 9000 --ide2 local-lvm:cloudinit
先ほどアタッチしたディスクをブートディスクとして設定します。
# qm set 9000 --boot c --bootdisk scsi0
Cloud-initはシリアルコンソールを使用するため、その設定をします。
# qm set 9000 --serial0 socket --vga serial0
最後に、テンプレートに変換します。
# qm template 9000
Cloud-initテンプレートからのデプロイ
先ほど作成したテンプレートを使用して、VMのデプロイを行ってみます。
普段はWebGUIから操作することが多いので、WebGUIから操作することにします。
作成したテンプレートを右クリックするとClone
の項目がありますので選択します。
ダイアログが表示されますので、VM ID
やName
を入力し、Mode
はFull Clone
を選択します。
入力出来たら、右下のClone
を押して処理が完了するのを待ちます。
処理が完了したら、クローンしたVMより、Cloud-init
メニューを開きます。
必要に応じて、各項目を設定します。
- User
- Password
- DNS domain
- DNS servers
- SSH public key
- IP Config
設定が完了したら、VMを起動します。
起動完了後、しばらく待っているとCloud-initの処理が行われます。
ログが表示されますので、処理が完了するのを待ってログインしてみてください。
設定した内容が反映されているはずです。
複数のVMをデプロイしたい場合も、作成したテンプレートからクローンすることで簡単にデプロイすることが出来ます。