第7章 カスタマイズしたイメージのデプロイ
VMWare vSphere プライベートクラウド用にカスタマイズしたイメージを作成した後、そのイメージを VMware vSphere にデプロイできます。ゲストイメージ (.qcow2
) およびインストーラー (.iso
) の場合は、これらのイメージをダウンロードして仮想マシンにデプロイできます。
カスタマイズされたイメージは、Hybrid Cloud Console から AWS、GCP、Azure のパブリッククラウドにのみ直接起動できます。VMDK のカスタマイズされたイメージをまず VMware vSphere にアップロードし、そこにデプロイしてから、仮想マシンを作成する必要があります。ゲストイメージ (.qcow2
) とインストーラー (.iso
) の場合は、これらのイメージをダウンロードして仮想マシンに直接展開できます。
7.1. VMDK イメージのアップロードと vSphere での RHEL 仮想マシンの作成
イメージを作成した後、CLI を使用してそれを VMware vSphere にデプロイできます。次に、仮想マシンを作成してログインできます。
前提条件
govc
VMware CLI ツールクライアントを設定している。govc
VMware CLI ツールクライアントを使用するには、環境で以下の値を設定する必要があります。GOVC_URL GOVC_DATACENTER GOVC_FOLDER GOVC_DATASTORE GOVC_RESOURCE_POOL GOVC_NETWORK
手順
-
.vmdk
イメージをダウンロードしたディレクトリーにアクセスします。 metadata.yaml
という名前のファイルを作成します。このファイルに以下の情報を追加します。instance-id: cloud-vm local-hostname: vmname
userdata.yaml
という名前のファイルを作成します。以下の情報をファイルに追加します。#cloud-config users: - name: admin sudo: "ALL=(ALL) NOPASSWD:ALL" ssh_authorized_keys: - ssh-rsa AAA...fhHQ== your.email@example.com
-
ssh_authorized_keys
は、SSH 公開鍵になります。~/.ssh/id_rsa.pub
で SSH 公開鍵を確認できます。
-
以下のように
gzip
で圧縮し、base64
でエンコードしてmetadata.yaml
とuserdata.yaml
ファイルを環境にエクスポートします。これは、追加の手順で使用されます。export METADATA=$(gzip -c9 <metadata.yaml | { base64 -w0 2>/dev/null || base64; }) \ USERDATA=$(gzip -c9 <userdata.yaml | { base64 -w0 2>/dev/null || base64; })
metadata.yaml
およびuserdata.yaml
ファイルを使用して vSphere でイメージを起動します。.vmdk
イメージを vSphere にインポートします。$ govc import.vmdk ./composer-api.vmdk foldername
電源をオンにせずに vSphere に仮想マシンを作成します。
govc vm.create \ -net.adapter=vmxnet3 \ -m=4096 -c=2 -g=rhel8_64Guest \ -firmware=bios -disk=”foldername/composer-api.vmdk” \ -disk.controller=ide -on=false \ vmname
仮想マシンを変更して、
ExtraConfig
変数のcloud-init
設定を追加します。govc vm.change -vm vmname \ -e guestinfo.metadata="${METADATA}" \ -e guestinfo.metadata.encoding="gzip+base64" \ -e guestinfo.userdata="${USERDATA}" \ -e guestinfo.userdata.encoding="gzip+base64"
仮想マシンの電源をオンにします。
govc vm.power -on vmname
仮想マシンの IP アドレスを取得します。
HOST=$(govc vm.ip vmname)
SSH を使用して、
cloud-init
ファイル設定に指定された user-data を使用して仮想マシンにログインします。$ ssh admin@HOST
関連情報