Ubuntu から Ubuntu Pro にアップグレードする


Ubuntu LTS イメージがサポート終了になると、サポートは提供されなくなり、セキュリティ アップデートも受信できなくなります。Ubuntu Pro にアップグレードすると、拡張セキュリティ メンテナンス(ESM)で引き続きセキュリティ アップデートを受け取ります。

このドキュメントでは、各 VM に対して、Ubuntu を Ubuntu Pro にアップグレードする方法について説明します。

  1. アップデートと依存関係をインストールします。
  2. Ubuntu ライセンスを Ubuntu Pro ライセンスに交換します。
  3. ライセンスを検証します。

サポートされているアップグレード パス

次の表に、サポートされているアップグレード パスを示します。

初期バージョン 最終バージョン
Ubuntu 16.04 LTS Ubuntu Pro 16.04 LTS
Ubuntu 18.04 LTS Ubuntu Pro 18.04 LTS
Ubuntu 20.04 LTS Ubuntu Pro 20.04 LTS
Ubuntu 22.04 LTS Ubuntu Pro 22.04 LTS
Ubuntu 24.04 LTS Ubuntu Pro 24.04 LTS

制限事項

  • ライセンスを交換する前に、VM を停止する必要があります。

  • Ubuntu LTS から Ubuntu Pro LTS にアップグレードできるのは、Ubuntu LTS と同じバージョンに限られます。たとえば、Ubuntu 16.04 LTS から Ubuntu Pro 16.04 LTS にアップグレードできますが、Ubuntu 16.04 LTS から Ubuntu Pro 20.04 LTS にアップグレードすることはできません。

課金

Ubuntu Pro LTS はプレミアム イメージの料金に従って課金されます。

課金の詳細については、Cloud Billing をご覧ください。

始める前に

  • 各 VM で次のコマンドを実行します。VM_NAME は、アップグレードする VM の名前に置き換えます。

    1. 次のコマンドを使用してパッケージ インデックスを更新します。
      gcloud compute ssh VM_NAME --command "sudo apt update"
    2. 次のコマンドを使用して、最新バージョンのパッケージをインストールします。
      gcloud compute ssh VM_NAME --command "sudo apt -f upgrade"
    3. 次のコマンドを使用して Ubuntu Pro をインストールします。
      gcloud compute ssh VM_NAME --command "sudo apt -f install ubuntu-advantage-pro"
  • まだ設定していない場合は、認証を設定します。認証とは、 Google Cloud サービスと API にアクセスするために ID を確認するプロセスです。ローカル開発環境からコードまたはサンプルを実行するには、次のいずれかのオプションを選択して Compute Engine に対する認証を行います。

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

      1. After installing the Google Cloud CLI, initialize it by running the following command:

        gcloud init

        If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

      2. Set a default region and zone.

ライセンスを交換する

次の手順で Ubuntu ライセンスを Ubuntu Pro ライセンスに交換します。

  1. gcloud compute instances stop コマンドを使用して VM を停止します。

    gcloud compute instances stop VM_NAME \
       --zone=ZONE
    

    次のように置き換えます。

    • VM_NAME: 停止する VM の名前
    • ZONE: 停止する VM があるゾーン
  2. gcloud compute instances describe コマンドを使用して、VM に関連付けられたディスクのリストを取得します。

    gcloud compute instances describe VM_NAME \
       --zone=ZONE \
       --format="yaml(disks)"
    

    次のように置き換えます。

    • VM_NAME: 関連付けられているディスクのリストを取得する VM の名前

    • ZONE: 関連ディスクのリストを取得する VM があるゾーン

  3. 次のような内容が出力されていることを確認します。

    disks:
    - autoDelete: true
      boot: true
      deviceName: ubuntu
      diskSizeGb: '10'
      guestOsFeatures:
      - type: VIRTIO_SCSI_MULTIQUEUE
      - type: SEV_CAPABLE
      - type: UEFI_COMPATIBLE
      - type: GVNIC
      index: 0
      interface: SCSI
      kind: compute#attachedDisk
      licenses:
      - https://www.googleapis.com/compute/v1/projects/ubuntu-os-cloud/global/licenses/ubuntu-1604-xenial
      mode: READ_WRITE
      shieldedInstanceInitialState:
        dbxs:
        - content: ...
          fileType: BIN
      source: https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONE/disks/VM_NAME
      type: PERSISTENT
    

    Licenses は交換されていないことに注意してください。

  4. gcloud compute disks list コマンドを実行して、ブートディスクの名前を取得します。

    gcloud compute disks list
    
  5. gcloud compute disks update コマンドを使用して、Ubuntu Pro ライセンス URI でブートディスクを更新します。

    gcloud compute disks update DISK_NAME \
       --zone=ZONE \
       --replace-licenses="PREVIOUS_LICENSE, NEW_LICENSE"
    

    次のように置き換えます。

    • DISK_NAME: ライセンスを交換するブートディスクの名前。

    • ZONE: ライセンスを交換するブートディスクを含むゾーン。

    • PREVIOUS_LICENSE: Ubuntu バージョンのライセンス URI。

    • NEW_LICENSE: 新しい Ubuntu Pro ライセンス URI。

    次の表に、サポートされている Ubuntu Pro バージョンのライセンス URI を示します。

Ubuntu Pro のバージョン ライセンス URI
Ubuntu Pro 16.04 LTS https://www.googleapis.com/compute/v1/projects/ubuntu-os-pro-cloud/global/licenses/ubuntu-pro-1604-lts
Ubuntu Pro 18.04 LTS https://www.googleapis.com/compute/v1/projects/ubuntu-os-pro-cloud/global/licenses/ubuntu-pro-1804-lts
Ubuntu Pro 20.04 LTS https://www.googleapis.com/compute/v1/projects/ubuntu-os-pro-cloud/global/licenses/ubuntu-pro-2004-lts
Ubuntu Pro 22.04 LTS https://www.googleapis.com/compute/v1/projects/ubuntu-os-pro-cloud/global/licenses/ubuntu-pro-2204-lts
Ubuntu Pro 24.04 LTS https://www.googleapis.com/compute/v1/projects/ubuntu-os-pro-cloud/global/licenses/ubuntu-pro-2404-lts

ライセンスを検証する

次の手順で Ubuntu Pro ライセンスを検証します。

  1. gcloud compute disks describe コマンドを実行して、ブートディスクに関する情報を取得します。

    gcloud compute disks describe DISK_NAME \
       --zone=ZONE
    

    次のように置き換えます。

    • DISK_NAME: ライセンスを検証するブートディスクの名前

    • ZONE: ライセンスを検証するブートディスクを含むゾーン

  2. 次のような出力を確認します。

    creationTimestamp: '2021-10-20T17:20:26.616-07:00'
    guestOsFeatures:
    - type: VIRTIO_SCSI_MULTIQUEUE
    - type: SEV_CAPABLE
    - type: UEFI_COMPATIBLE
    - type: GVNIC
    id: '7008232787326864549'
    kind: compute#disk
    labelFingerprint: 42WmSpB8rSM=
    lastAttachTimestamp: '2021-10-20T17:20:26.617-07:00'
    licenseCodes:
    - '1000201'
    - '8045211386737108299'
    licenses:
    - https://www.googleapis.com/compute/v1/projects/ubuntu-os-cloud/global/licenses/ubuntu-1604-xenial
    - https://www.googleapis.com/compute/v1/projects/ubuntu-os-pro-cloud/global/licenses/ubuntu-pro-1604-lts
    name: ubuntu
    physicalBlockSizeBytes: '4096'
    selfLink: https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONE/disks/DISK_NAME
    sizeGb: '10'
    sourceImage: https://www.googleapis.com/compute/v1/projects/IMAGE_PROJECT/global/images/IMAGE
    sourceImageId: '1233998915439563944'
    status: READY
    type: https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONE/diskTypes/DISK_TYPE
    users:
    - https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONE/instances/VM_NAME
    zone: https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONE
    
  3. 前の手順の出力で、適切なライセンス文字列の licenses フィールドを調べて、Ubuntu Pro ライセンスがブートディスクに追加されていることを確認します。

    licenses フィールドに目的のライセンス文字列が含まれていない場合は、ライセンスを削除してから更新する必要がある場合があります。詳細については、gcloud compute disks update コマンドをご覧ください。

  4. gcloud compute instances start コマンドを使用して VM を起動します。

    gcloud compute instances start VM_NAME \
       --zone=ZONE \
       [--csek-key-file ENCRYPTION_KEY]
    

    次のように置き換えます。

    • VM_NAME: 起動する VM の名前

    • ZONE: 起動する VM があるゾーン

    • ENCRYPTION_KEY: 省略可。ブートディスクが暗号化されている場合、顧客指定の暗号鍵(CSEK)ファイルのパスを指定します。

  5. VM が起動したら、gcloud compute ssh コマンドを実行して、Ubuntu ESM の利用資格があり、有効になっていることを確認します。

    gcloud compute ssh VM_NAME --command "sudo ua status --wait" \
       --zone=ZONE
    

    次のように置き換えます。

    • VM_NAME: 検証する VM の名前

    • ZONE: 検証する VM があるゾーン

  6. 出力が次のようであることを確認して、Ubuntu ESM に利用資格があり、有効になっていることを確認します。

    SERVICE       ENTITLED  STATUS    DESCRIPTION
    cis           yes       disabled  Center for Internet Security Audit Tools
    esm-apps      yes       enabled   UA Apps: Extended Security Maintenance (ESM)
    esm-infra     yes       enabled   UA Infra: Extended Security Maintenance (ESM)
    fips          yes       n/a       NIST-certified core packages
    fips-updates  yes       n/a       NIST-certified core packages with priority security updates
    livepatch     yes       n/a       Canonical Livepatch service
    

アクティビティ ログを表示する

次の手順を使用して、プロジェクト内の VM のライセンス更新履歴を表示します。

  1. Google Cloud コンソールで、[ログ エクスプローラ] ページに移動します。

    [ログ エクスプローラ] に移動

  2. ツールバーで [クエリを表示] が有効になっていることを確認します。

  3. 次の式をクエリエディタにコピーします。

    resource.type="gce_disk"
    logName="projects/PROJECT_NAME/logs/cloudaudit.googleapis.com%2Factivity"
    severity>=NOTICE
    protoPayload.request.@type="type.googleapis.com/compute.disks.update"
    protoPayload.request.licenses:*
    
  4. PROJECT_NAME は、実際のプロジェクト名で置き換えます。

  5. [クエリを実行] をクリックします。