1
0
Fork 0
mirror of https://github.com/imjasonh/gcloud-help synced 2026-07-09 02:55:19 +00:00
gcloud-help/gcloud/compute/machine-images/import
2023-03-15 11:22:01 +00:00

354 lines
16 KiB
Text

NAME
gcloud compute machine-images import - create a Compute Engine machine
image from virtual appliance in OVA/OVF format
SYNOPSIS
gcloud compute machine-images import IMAGE --source-uri=SOURCE_URI
[--no-address] [--async] [--byol] [--can-ip-forward]
[--compute-service-account=COMPUTE_SERVICE_ACCOUNT]
[--description=DESCRIPTION] [--no-guest-environment] [--guest-flush]
[--guest-os-features=[GUEST_OS_FEATURE,...]] [--labels=[KEY=VALUE,...]]
[--log-location=LOG_LOCATION] [--machine-type=MACHINE_TYPE]
[--network=NETWORK] [--network-tier=NETWORK_TIER] [--os=OS]
[--no-restart-on-failure] [--storage-location=LOCATION]
[--subnet=SUBNET] [--tags=TAG,[TAG,...]]
[--timeout=TIMEOUT; default="2h"] [--zone=ZONE]
[--custom-cpu=CUSTOM_CPU --custom-memory=CUSTOM_MEMORY
: --custom-extensions --custom-vm-type=CUSTOM_VM_TYPE]
[--scopes=[SCOPE,...] | --no-scopes]
[--service-account=SERVICE_ACCOUNT | --no-service-account]
[GCLOUD_WIDE_FLAG ...]
DESCRIPTION
gcloud compute machine-images import creates Compute Engine machine image
from virtual appliance in OVA/OVF format.
Importing OVF involves:
▪ Unpacking OVF package (if in OVA format) to Cloud Storage.
▪ Import disks from OVF to Compute Engine.
▪ Translate the boot disk to make it bootable in Compute Engine.
▪ Create a machine image using OVF metadata and imported disks.
Virtual instances, images, machine images, and disks in Compute engine and
files stored on Cloud Storage incur charges. See
https://cloud.google.com/compute/docs/images/importing-virtual-disks#resource_cleanup.
EXAMPLES
To import an OVF package from Cloud Storage into a machine image named
my-machine-image, run:
$ gcloud compute machine-images import my-machine-image \
--source-uri=gs://my-bucket/my-dir
POSITIONAL ARGUMENTS
IMAGE
Name of the machineImage to import.
REQUIRED FLAGS
--source-uri=SOURCE_URI
Cloud Storage path to one of: OVF descriptor OVA file Directory with
OVF package. For more information about Cloud Storage URIs, see
https://cloud.google.com/storage/docs/request-endpoints#json-api.
OPTIONAL FLAGS
--no-address
Temporary VMs are created in your project during machine image import.
Set this flag so that these temporary VMs are not assigned external IP
addresses.
Note: The machine image import process requires package managers to be
installed on the operating system for the virtual disk. These package
managers might need to make requests to package repositories that are
outside Google Cloud. To allow access for these updates, you need to
configure Cloud NAT and Private Google Access. For more information,
see https://cloud.google.com/nat/docs/gce-example#create-nat and
https://cloud.google.com/vpc/docs/private-access-options#pga.
--async
Return immediately, without waiting for the operation in progress to
complete.
--byol
Specifies that you want to import an image with an existing license.
Importing an image with an existing license is known as bring your own
license (BYOL).
--byol can be specified in any of the following ways:
+ `--byol --os=rhel-8`: imports a RHEL 8 image with an existing license.
+ `--os=rhel-8-byol`: imports a RHEL 8 image with an existing license.
+ `--byol`: detects the OS contained on the disk, and imports
the image with an existing license.
For more information about BYOL, see:
https://cloud.google.com/compute/docs/nodes/bringing-your-own-licenses
--can-ip-forward
If provided, allows the VMs created from the imported machine image to
send and receive packets with non-matching destination or source IP
addresses.
--compute-service-account=COMPUTE_SERVICE_ACCOUNT
A temporary virtual machine instance is created in your project during
machine image import. Machine image import tooling on this temporary
instance must be authenticated.
A Compute Engine service account is an identity attached to an
instance. Its access tokens can be accessed through the instance
metadata server and can be used to authenticate machine image import
tooling on the instance.
To set this option, specify the email address corresponding to the
required Compute Engine service account. If not provided, the machine
image import on the temporary instance uses the project's default
Compute Engine service account.
At minimum, the specified Compute Engine service account needs to have
the following roles assigned:
◆ roles/compute.storageAdmin
◆ roles/storage.objectViewer
--description=DESCRIPTION
Specifies a text description of the machine image.
--guest-environment
The guest environment will be installed on the machine image. Enabled
by default, use --no-guest-environment to disable.
--guest-flush
Create an application-consistent machine image by informing the OS to
prepare for the snapshot process.
--guest-os-features=[GUEST_OS_FEATURE,...]
Enables one or more features for VM instances that use the image for
their boot disks. See the descriptions of supported features at:
https://cloud.google.com/compute/docs/images/create-delete-deprecate-private-images#guest-os-features.
GUEST_OS_FEATURE must be (only one value is supported):
UEFI_COMPATIBLE.
--labels=[KEY=VALUE,...]
List of label KEY=VALUE pairs to add.
Keys must start with a lowercase character and contain only hyphens
(-), underscores (_), lowercase characters, and numbers. Values must
contain only hyphens (-), underscores (_), lowercase characters, and
numbers.
--log-location=LOG_LOCATION
Directory in Cloud Storage to hold build logs. If not set,
gs://<project num>.cloudbuild-logs.googleusercontent.com/ is created
and used.
--machine-type=MACHINE_TYPE
Specifies the machine type used for the instances. To get a list of
available machine types, run 'gcloud compute machine-types list'. If
unspecified, the default type is n1-standard-1.
--network=NETWORK
Specifies the network for the VMs that are created from the imported
machine image. If --subnet is also specified, then the subnet must be a
subnetwork of network specified by --network. If neither is specified,
the default network is used.
--network-tier=NETWORK_TIER
Specifies the network tier that will be used to configure the machine
image. NETWORK_TIER must be one of: PREMIUM, STANDARD. The default
value is PREMIUM.
--os=OS
Specifies the OS of the machine image being imported. OS must be one
of: centos-7, debian-10, debian-11, debian-8, debian-9, opensuse-15,
rhel-6, rhel-6-byol, rhel-7, rhel-7-byol, rhel-8, rhel-8-byol, rhel-9,
rhel-9-byol, rocky-8, sles-12, sles-12-byol, sles-15, sles-15-byol,
sles-sap-12, sles-sap-12-byol, sles-sap-15, sles-sap-15-byol,
ubuntu-1404, ubuntu-1604, ubuntu-1804, ubuntu-2004, ubuntu-2204,
windows-10-x64-byol, windows-10-x86-byol, windows-11-x64-byol,
windows-2008r2, windows-2008r2-byol, windows-2012, windows-2012-byol,
windows-2012r2, windows-2012r2-byol, windows-2016, windows-2016-byol,
windows-2019, windows-2019-byol, windows-2022, windows-2022-byol,
windows-7-x64-byol, windows-7-x86-byol, windows-8-x64-byol,
windows-8-x86-byol.
--restart-on-failure
The VMs created from the imported machine image are restarted if they
are terminated by Compute Engine. This does not affect terminations
performed by the user. Enabled by default, use --no-restart-on-failure
to disable.
--storage-location=LOCATION
Google Cloud Storage location, either regional or multi-regional, where
machine image's content is to be stored. If absent, a nearby regional
or multi-regional location is chosen automatically.
--subnet=SUBNET
Specifies the subnet for the VMs created from the imported machine
image. If --network is also specified, the subnet must be a subnetwork
of the network specified by --network.
--tags=TAG,[TAG,...]
Specifies a list of tags to apply to the VMs created from the imported
machine image. These tags allow network firewall rules and routes to be
applied to specified VMs. See gcloud compute firewall-rules create(1)
for more details.
To read more about configuring network tags, read this guide:
https://cloud.google.com/vpc/docs/add-remove-network-tags
To list VMs with their respective status and tags, run:
$ gcloud compute instances list \
--format='table(name,status,tags.list())'
To list VMs tagged with a specific tag, tag1, run:
$ gcloud compute instances list --filter='tags:tag1'
--timeout=TIMEOUT; default="2h"
Maximum time an import can last before it fails as "TIMEOUT". For
example, if you specify 2h, the process fails after 2 hours. See $
gcloud topic datetimes for information about duration formats.
This timeout option has a maximum value of 24 hours.
--zone=ZONE
Zone of the machine image to import. The zone in which to perform the
import of the machine image. If not specified and the compute/zone
property isn't set, you might be prompted to select a zone (interactive
mode only).
To avoid prompting when this flag is omitted, you can set the
compute/zone property:
$ gcloud config set compute/zone ZONE
A list of zones can be fetched by running:
$ gcloud compute zones list
To unset the property, run:
$ gcloud config unset compute/zone
Alternatively, the zone can be stored in the environment variable
CLOUDSDK_COMPUTE_ZONE.
Custom machine type extensions.
--custom-cpu=CUSTOM_CPU
A whole number value specifying the number of cores that are needed
in the custom machine type.
For some machine types, shared-core values can also be used. For
example, for E2 machine types, you can specify micro, small, or
medium.
This flag argument must be specified if any of the other arguments in
this group are specified.
--custom-memory=CUSTOM_MEMORY
A whole number value indicating how much memory is desired in the
custom machine type. A size unit should be provided (eg. 3072MB or
9GB) - if no units are specified, GB is assumed.
This flag argument must be specified if any of the other arguments in
this group are specified.
--custom-extensions
Use the extended custom machine type.
--custom-vm-type=CUSTOM_VM_TYPE
Specifies a custom machine type. The default is n1. For more
information about custom machine types, see:
https://cloud.google.com/compute/docs/general-purpose-machines#custom_machine_types
At most one of these can be specified:
--scopes=[SCOPE,...]
If not provided, the machine image will be assigned the default
scopes, described below. However, if neither --scopes nor --no-scopes
are specified and the project has no default service account, then
the machine image is imported with no scopes. Note that the level of
access that a service account has is determined by a combination of
access scopes and IAM roles so you must configure both access scopes
and IAM roles for the service account to work properly.
SCOPE can be either the full URI of the scope or an alias. Default
scopes are assigned to all instances. Available aliases are:
Alias URI
bigquery https://www.googleapis.com/auth/bigquery
cloud-platform https://www.googleapis.com/auth/cloud-platform
cloud-source-repos https://www.googleapis.com/auth/source.full_control
cloud-source-repos-ro https://www.googleapis.com/auth/source.read_only
compute-ro https://www.googleapis.com/auth/compute.readonly
compute-rw https://www.googleapis.com/auth/compute
datastore https://www.googleapis.com/auth/datastore
default https://www.googleapis.com/auth/devstorage.read_only
https://www.googleapis.com/auth/logging.write
https://www.googleapis.com/auth/monitoring.write
https://www.googleapis.com/auth/pubsub
https://www.googleapis.com/auth/service.management.readonly
https://www.googleapis.com/auth/servicecontrol
https://www.googleapis.com/auth/trace.append
gke-default https://www.googleapis.com/auth/devstorage.read_only
https://www.googleapis.com/auth/logging.write
https://www.googleapis.com/auth/monitoring
https://www.googleapis.com/auth/service.management.readonly
https://www.googleapis.com/auth/servicecontrol
https://www.googleapis.com/auth/trace.append
logging-write https://www.googleapis.com/auth/logging.write
monitoring https://www.googleapis.com/auth/monitoring
monitoring-read https://www.googleapis.com/auth/monitoring.read
monitoring-write https://www.googleapis.com/auth/monitoring.write
pubsub https://www.googleapis.com/auth/pubsub
service-control https://www.googleapis.com/auth/servicecontrol
service-management https://www.googleapis.com/auth/service.management.readonly
sql (deprecated) https://www.googleapis.com/auth/sqlservice
sql-admin https://www.googleapis.com/auth/sqlservice.admin
storage-full https://www.googleapis.com/auth/devstorage.full_control
storage-ro https://www.googleapis.com/auth/devstorage.read_only
storage-rw https://www.googleapis.com/auth/devstorage.read_write
taskqueue https://www.googleapis.com/auth/taskqueue
trace https://www.googleapis.com/auth/trace.append
userinfo-email https://www.googleapis.com/auth/userinfo.email
DEPRECATION WARNING: https://www.googleapis.com/auth/sqlservice
account scope and sql alias do not provide SQL instance management
capabilities and have been deprecated. Please, use
https://www.googleapis.com/auth/sqlservice.admin or sql-admin to
manage your Google SQL Service instances.
--no-scopes
Import machine image without scopes
At most one of these can be specified:
--service-account=SERVICE_ACCOUNT
A service account is an identity attached to the machine image. Its
access tokens can be accessed through the instance metadata server
and are used to authenticate applications on the instance. The
account can be set using an email address corresponding to the
required service account.
If not provided, the machine image will use the project's default
service account.
--no-service-account
Import machine image without service account
GCLOUD WIDE FLAGS
These flags are available to all commands: --access-token-file, --account,
--billing-project, --configuration, --flags-file, --flatten, --format,
--help, --impersonate-service-account, --log-http, --project, --quiet,
--trace-token, --user-output-enabled, --verbosity.
Run $ gcloud help for details.
NOTES
These variants are also available:
$ gcloud alpha compute machine-images import
$ gcloud beta compute machine-images import