Linux Windows
This document explains how to manage licenses associated with a Compute Engine instance. This includes how to append, remove, replace, and view the history of license updates. For more information about licenses on Compute Engine see About licenses.
Restrictions for changing licensesOnly certain OS licenses are eligible to be appended, removed, or replaced. License changes are supported for Red Hat Enterprise Linux (RHEL), RHEL for SAP, SUSE Linux Enterprise Server (SLES), SLES for SAP, Ubuntu, and Ubuntu Pro.
The allowed license changes are determined by the license owner and are subject to change. To validate the allowed license changes for your VM, see Review license changes and restrictions.
For changing your RHEL or SLES licenses between pay-as-you-go (PAYG) and bring-your-own-subscription (BYOS), see Switch between PAYG and BYOS.
For Ubuntu LTS, to upgrade your license to Ubuntu Pro to enable Extended Security Maintenance (ESM), see Upgrade from Ubuntu to Ubuntu Pro.
To update your on-demand RHEL license to include extended support, see Append the RHEL Extended lifecycle Support (ELS) Add-On to your license.
Before you beginSelect the tab for how you plan to use the samples on this page:
ConsoleWhen you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloudInstall the Google Cloud CLI. After installation, initialize the Google Cloud CLI 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.
Note: If you installed the gcloud CLI previously, make sure you have the latest version by runninggcloud components update
.To use the REST API samples on this page in a local development environment, you use the credentials you provide to the gcloud CLI.
Install the Google Cloud CLI. After installation, initialize the Google Cloud CLI 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.
Note: If you installed the gcloud CLI previously, make sure you have the latest version by runninggcloud components update
.
For more information, see Authenticate for using REST in the Google Cloud authentication documentation.
To update the disk's license while the disk is attached to a running instance, first either stop the instance or detach the disk.
To perform this task, you must have the following permissions:
compute.instances.get
To view the licenses associated with a VM, use the Google Cloud console, gcloud CLI, or the Compute Engine API.
ConsoleIn the Google Cloud console, go to the VM instances page.
Click the name of the VM to check the license of. The Instance details page opens.
At the bottom of the Instance details page, click Equivalent Code.
View the licenses
field for the boot disk.
Run the following gcloud compute instances describe
command:
gcloud compute instances describe VM_NAME
Replace VM_NAME
with the name of your VM.
View the disks
section of the output. The licenses
field shows the licenses associated with the boot disk.
Call the instances.get
v1 method:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/instancesVM_NAME
Replace the following:
PROJECT
: the name of the projectZONE
: the zone containing the VMVM_NAME
: the name of the VMThe Compute Engine API returns the licenses associated with the boot disk in the disks
section of the licenses
field.
To append a license during the image import process, use the following gcloud compute images import
command.
gcloud compute images import IMAGE_NAME \ --source-file=SOURCE_FILE --os=OS
Replace the following:
IMAGE_NAME
: the name of the image to create.SOURCE_FILE
: a local file or Cloud Storage URI of the virtual disk to import.OS
: the OS of the disk image to import. The license for the OS is inferred from the value of this flag; there isn't an explicit flag to provide license information when importing. For a list of the supported values, see --os
flag.For more information about importing images, see Importing virtual disks.
Append licenses when creating an imageTo append licenses when creating an image, use the following gcloud compute images create
command.
gcloud compute images create IMAGE_NAME \ --source-image=SOURCE_IMAGE \ --licenses=LICENSES
Replace the following:
IMAGE_NAME
: the name of the image to create.SOURCE_IMAGE
: the name of the image to create the new image from.LICENSES
: a comma-separated list of license strings. For example, "license1"
, "license2"
.For more information about creating images, see Creating, deleting, and deprecating custom images, and Creating a Windows image.
For more information about creating images, see Creating, deleting, and deprecating custom images, and Creating a Windows image.
Append licenses to a diskTo append licenses associated with a VM, use the gcloud CLI or the Compute Engine API.
gcloudTo append licenses to a disk using a license reference or code, use the following gcloud compute disks update
command.
gcloud compute disks update DISK_NAME \ --append-licenses=LICENSES
Replace the following:
DISK_NAME
: the name of the disk to append.LICENSES
: a comma-separated list of license references, for example, "projects/rhel-cloud/global/licenses/rhel-9-server"
, "projects/rhel-cloud/global/licenses/rhel-8-server"
.To append licenses to a disk using a license reference or code, call the following disks.update
v1 method:
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/disks/DISK_NAME?paths=licenses --data '{"name":"DISK_NAME", "licenses":["https://www.googleapis.com/compute/v1/LICENSES"]}'
Replace the following:
PROJECT
: the name of the projectZONE
: the zone containing the VMDISK_NAME
: the name of the diskLICENSES
: a comma-separated list of license references, for example, "projects/rhel-cloud/global/licenses/rhel-9-server"
, "projects/rhel-cloud/global/licenses/rhel-8-server"
.To replace licenses associated with a VM, use the gcloud CLI or the Compute Engine API.
gcloudTo replace a license on a disk using a license reference or code, use the following gcloud compute disks update
command.
gcloud compute disks update DISK_NAME \ --replace-license=PREVIOUS_LICENSE,NEW_LICENSE
Replace the following:
DISK_NAME
: the name of the disk to append.PREVIOUS_LICENSE
: the previous license reference being replaced, for example, "projects/rhel-cloud/global/licenses/rhel-9-server"
, "projects/rhel-cloud/global/licenses/rhel-8-server"
.NEW_LICENSE
: the new license reference, for example, "projects/rhel-cloud/global/licenses/rhel-9-server"
, "projects/rhel-cloud/global/licenses/rhel-8-server"
.To replace a license on a disk using a license reference or code, call the disks.update
v1 method and replace the previous license with the new license in the request body as follows:
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/disks/DISK_NAME?paths=licenses --data '{"name":"DISK_NAME", "licenses":["https://www.googleapis.com/compute/v1/NEW_LICENSE"]}'
Replace the following:
PROJECT
: the name of the projectZONE
: the zone containing the VMDISK_NAME
: the name of the diskNEW_LICENSE
: the new license reference, for example, "projects/rhel-cloud/global/licenses/rhel-9-server"
, "projects/rhel-cloud/global/licenses/rhel-8-server"
.To remove individual licenses associated with a VM, use the gcloud CLI and Compute Engine API.
gcloudTo remove licenses from a disk using a license reference or code, use the gcloud compute disks update
command.
gcloud compute disks update DISK_NAME \ --remove-licenses=LICENSES
Replace the following:
DISK_NAME
: the name of the disk to remove.LICENSES
: a comma-separated list of license references, for example, "projects/rhel-cloud/global/licenses/rhel-9-server"
, "projects/rhel-cloud/global/licenses/rhel-8-server"
.To remove a license, provide an empty license field in the call request along with the path selector by calling the following disks.update
v1 method:
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/disks/DISK_NAME?paths=licenses --data '{"name":"DISK_NAME", "licenses":[]}'
Replace the following:
PROJECT
: the name of the projectZONE
: the zone containing the VMDISK_NAME
: the name of the diskLICENSES
: leave blank.View the history of license updates for VMs in a project by using the following procedure:
In the Google Cloud console, go to the Logs Explorer page.
In the toolbar, verify that Show query is enabled.
Copy the following expression into the query editor:
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:*
Replace PROJECT_NAME
with the name of the project.
Click Run query.
Learn more about premium operating systems:
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.5