9.3. CLI を使用した VMDK イメージの vSphere へのデプロイ

イメージを作成した後、CLI を使用してそれを VMware vSphere にデプロイできます。次に、仮想マシンを作成してログインできます。

注記

GUI ウィザードは cloud-init をサポートしません。

前提条件

  • govc VMware CLI ツールクライアントを設定している。

    • govc VMware CLI ツールクライアントを使用するには、環境で以下の値を設定する必要があります。

      GOVC_URL
      GOVC_DATACENTER
      GOVC_FOLDER
      GOVC_DATASTORE
      GOVC_RESOURCE_POOL
      GOVC_NETWORK

手順

  1. .vmdk イメージをダウンロードしたディレクトリーにアクセスします。
  2. metadata.yaml という名前のファイルを作成します。このファイルに以下の情報を追加します。

    instance-id: cloud-vm
    local-hostname: vmname
  3. 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 公開鍵を確認できます。
  4. 以下のように gzip で圧縮し、base64 でエンコードして metadata.yamluserdata.yaml ファイルを環境にエクスポートします。これは、追加の手順で使用されます。

    export METADATA=$(gzip -c9 <metadata.yaml | { base64 -w0 2>/dev/null || base64; }) \
    USERDATA=$(gzip -c9 <userdata.yaml | { base64 -w0 2>/dev/null || base64; })
  5. metadata.yaml および userdata.yaml ファイルを使用して vSphere でイメージを起動します。

    1. .vmdk イメージを vSphere にインポートします。

      $ govc import.vmdk ./composer-api.vmdk foldername
    2. 電源をオンにせずに 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
    3. 仮想マシンを変更して、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"
    4. 仮想マシンの電源をオンにします。

      govc vm.power -on vmname
    5. 仮想マシンの IP アドレスを取得します。

      HOST=$(govc vm.ip vmname)
    6. SSH を使用して、cloud-init ファイル設定に指定された user-data を使用して仮想マシンにログインします。

      $ ssh admin@HOST