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 managing licenses:
- You can only add a license to a disk if
AppendableToDisk
istrue
. - You can only remove (with no replacement provided) if
RemovableFromDisk
istrue
. - You can only replace a license with one of the replacements listed
in
AllowedReplacementLicenses
.
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 Life Cycle Support (ELS) Add-On to your license.
Before you begin
-
If you haven't already, then set up authentication.
Authentication is
the process by which your identity is verified for access to Trusted Cloud by S3NS services and APIs.
To run code or samples from a local development environment, you can authenticate to
Compute Engine by selecting one of the following options:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Trusted Cloud console to access Trusted Cloud by S3NS services and APIs, you don't need to set up authentication.
gcloud
-
After installing the Google Cloud CLI, sign in to the gcloud CLI with your federated identity and then initialize it by running the following command:
gcloud init
- Set a default region and zone.
REST
To use the REST API samples on this page in a local development environment, you use the credentials you provide to the gcloud CLI.
After installing the Google Cloud CLI, sign in to the gcloud CLI with your federated identity and then initialize it by running the following command:
gcloud init
For more information, see Authenticate for using REST in the Trusted Cloud authentication documentation.
-
Prepare to update a disk's license
To update the disk's license while the disk is attached to a running instance, first either stop the instance or detach the disk.
- Stop the instance. Temporarily shuts down the instance before updating the disk's license.
- Detach the disk. This detaches the disk from the instance before updating the disk's license.
View the licenses associated with a VM
To view the licenses associated with a VM, use the Trusted Cloud console, gcloud CLI, or the Compute Engine API.
Console
In the Trusted 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.
gcloud
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. Thelicenses
field shows the licenses associated with the boot disk.
REST
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 VM
The Compute Engine API returns the licenses associated with the boot
disk in the disks
section of the licenses
field.
Append a license during an image import
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 image
To 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 disk
To append licenses associated with a VM, use the gcloud CLI or the Compute Engine API.
gcloud
To append licenses to a disk using a license reference or code, use the following gcloud compute disks update my-disk
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"
.
REST
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"
.
Replace licenses on a disk
To replace licenses associated with a VM, use the gcloud CLI or the Compute Engine API.
gcloud
To replace a license on a disk using a license reference or code, use the following gcloud compute disks update my-disk
command.
gcloud compute disks update DISK_NAME \ --replace-licenses=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"
.
REST
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"
.
Remove licenses from a disk
To remove individual licenses associated with a VM, use the gcloud CLI and Compute Engine API.
gcloud
To remove licenses from a disk using a license reference or code, use the following gcloud compute disks update my-disk
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"
.
REST
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
View the history of license updates for VMs in a project by using the following procedure:
In the Trusted 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.
What's next
Learn more about premium operating systems: