Ubuntu LTS 映像达到生命周期末期后,便不再受支持,也不会收到安全更新。如果您升级到 Ubuntu Pro,则可以在扩展安全维护 (ESM) 期间继续接收安全更新。
本文档介绍如何通过对每个虚拟机执行以下操作来从 Ubuntu 升级到 Ubuntu Pro:
- 安装更新和依赖项
- 附加 Ubuntu Pro 许可
- 验证许可
支持的升级路径
下表展示了受支持的升级路径:
初始版本 | 最终版本 |
---|---|
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 LTS 升级到相同版本的 Ubuntu Pro 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_NAME
替换为要升级的虚拟机的名称:-
使用以下命令更新软件包索引:
gcloud compute ssh VM_NAME --command "sudo apt update"
-
使用以下命令安装最新版本的软件包:
gcloud compute ssh VM_NAME --command "sudo apt -f upgrade"
-
使用以下命令安装 Ubuntu Pro:
gcloud compute ssh VM_NAME --command "sudo apt -f install ubuntu-advantage-pro"
-
使用以下命令更新软件包索引:
-
如果您尚未设置身份验证,请进行设置。身份验证是通过其进行身份验证以访问 Google Cloud 服务和 API 的过程。如需从本地开发环境运行代码或示例,您可以选择以下任一选项向 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
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
使用
gcloud compute instances stop
命令停止虚拟机:gcloud compute instances stop VM_NAME \ --zone=ZONE
替换以下内容:
VM_NAME
:要停止的虚拟机的名称ZONE
:包含要停止的虚拟机的可用区
使用
gcloud compute instances describe
命令获取与虚拟机关联的磁盘列表:gcloud compute instances describe VM_NAME \ --zone=ZONE \ --format="yaml(disks)"
替换以下内容:
VM_NAME
:要从中获取关联磁盘列表的虚拟机的名称ZONE
:要从中获取关联磁盘列表的虚拟机的可用区
验证输出是否类似于以下内容:
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
请注意,尚未附加
userLicenses
。通过运行以下
gcloud compute disks list
命令来获取启动磁盘的名称:gcloud compute disks list
使用
gcloud beta compute disks update
命令通过 Ubuntu Pro 许可 URI 更新启动磁盘:gcloud beta compute disks update BOOT_DISK_NAME \ --zone=ZONE \ --update-user-licenses="LICENSE_URI"
替换以下内容:
BOOT_DISK_NAME
:要将许可附加到的启动磁盘的名称。ZONE
:包含要将许可附加到的启动磁盘的可用区。LICENSE_URI
:要升级到的 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
通过运行
gcloud beta compute disks describe
命令获取启动磁盘的相关信息:gcloud beta compute disks describe BOOT_DISK_NAME \ --zone=ZONE
替换以下内容:
BOOT_DISK_NAME
:要验证其许可的启动磁盘的名称ZONE
:包含要验证其许可的启动磁盘的区域
验证输出类似于以下内容:
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 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 userLicenses: - https://www.googleapis.com/compute/v1/projects/ubuntu-os-pro-cloud/global/licenses/ubuntu-pro-1604-lts 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
通过检查上一步的相应许可字符串的
userLicenses
字段输出,验证 Ubuntu Pro 许可是否已附加到启动磁盘。如果
userLicenses
字段不包含预期的许可字符串,您可能需要清除,然后再更新用户许可。如需了解详情,请参阅gcloud beta compute disks update
命令。使用
gcloud compute instances start
命令启动虚拟机:gcloud compute instances start VM_NAME \ --zone=ZONE \ [--csek-key-file ENCRYPTION_KEY]
替换以下内容:
VM_NAME
:要启动的虚拟机的名称ZONE
:包含要启动的虚拟机的可用区ENCRYPTION_KEY
:可选标志。如果启动磁盘已加密,则用于指定 CSEK(客户提供的加密密钥)文件的路径
虚拟机启动后,运行
gcloud compute ssh
命令以验证 Ubuntu ESM 是否已授权并启用:gcloud compute ssh VM_NAME --command "sudo ua status --wait" \ --zone=ZONE
替换以下内容:
VM_NAME
:要验证的虚拟机的名称ZONE
:包含要验证的虚拟机的可用区
通过验证输出类似于以下内容,检查 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
在 Google Cloud Console 中,转到活动页面。
在类别下的过滤条件窗格中,为活动类型选择配置。
在类别下的过滤条件窗格中,为资源类型选择磁盘。
附加许可
按照以下步骤附加 Ubuntu Pro 许可:
验证许可
按照以下步骤验证 Ubuntu Pro 许可:
查看审核日志
按照以下步骤查看许可更新历史记录:
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2024-12-22。
-