GCLOUD_COMPUTE_INSTANCES_CREATE(1)

NAME

gcloud compute instances create - create Google Compute Engine virtual machine instances

SYNOPSIS

gcloud compute instances create NAME [NAME ...] [--no-boot-disk-auto-delete] [--boot-disk-device-name BOOT_DISK_DEVICE_NAME] [--boot-disk-size BOOT_DISK_SIZE] [--boot-disk-type BOOT_DISK_TYPE] [--can-ip-forward] [--csek-key-file FILE] [--custom-cpu CUSTOM_CPU] [--custom-memory CUSTOM_MEMORY] [--description DESCRIPTION] [--disk [PROPERTY=VALUE,...]] [--image IMAGE | --image-family IMAGE_FAMILY] [--image-project IMAGE_PROJECT] [--local-ssd [PROPERTY=VALUE,...]] [--machine-type MACHINE_TYPE] [--maintenance-policy MAINTENANCE_POLICY] [--metadata KEY=VALUE,[KEY=VALUE,...]] [--metadata-from-file KEY=LOCAL_FILE_PATH,[KEY=LOCAL_FILE_PATH,...]] [--network NETWORK; default="default" | --subnet SUBNET] [--address ADDRESS | --no-address] [--preemptible] [--private-network-ip PRIVATE_NETWORK_IP] [--no-require-csek-key-create] [--no-restart-on-failure] [--no-scopes | --scopes [ACCOUNT=]SCOPE,[[ACCOUNT=]SCOPE,...]] [--tags TAG,[TAG,...]] [--zone ZONE] [GLOBAL-FLAG ...]

DESCRIPTION
gcloud compute instances create facilitates the creation of Google Compute Engine virtual machines. For example, running:
    $ gcloud compute instances create example-instance-1 \
        example-instance-2 example-instance-3 --zone us-central1-a
will create three instances called example-instance-1, example-instance-2, and example-instance-3 in the us-central1-a zone. When an instance is in RUNNING state and the system begins to boot, the instance creation is considered finished, and the command returns with a list of new virtual machines. Note that you usually cannot log into a new instance until it finishes booting. Check the progress of an instance using gcloud compute instances get-serial-port-output. For more examples, refer to the EXAMPLES section below.

POSITIONAL ARGUMENTS
NAME [NAME ...]
    The names of the instances to create.

FLAGS
--address ADDRESS
    Assigns the given external address to the instance that is created. The address may be an IP address or the name or URI of an address resource. This option can only be used when creating a single instance.
--boot-disk-auto-delete
    Automatically delete boot disks when their instances are deleted. Enabled by default, use --no-boot-disk-auto-delete to disable.
--boot-disk-device-name BOOT_DISK_DEVICE_NAME
    The name the guest operating system will see for the boot disk as. This option can only be specified if a new boot disk is being created (as opposed to mounting an existing persistent disk).
--boot-disk-size BOOT_DISK_SIZE
    The size of the boot disk. This option can only be specified if a new boot disk is being created (as opposed to mounting an existing persistent disk). The value must be a whole number followed by a size unit of KB for kilobyte, MB for megabyte, GB for gigabyte, or TB for terabyte. For example, 10GB will produce a 10 gigabyte disk. The minimum size a boot disk can have is 10 GB. Disk size must be a multiple of 1 GB.
--boot-disk-type BOOT_DISK_TYPE
    The type of the boot disk. This option can only be specified if a new boot disk is being created (as opposed to mounting an existing persistent disk). To get a list of available disk types, run $ gcloud compute disk-types list.
--can-ip-forward
    If provided, allows the instances to send and receive packets with non-matching destination or source IP addresses.
--csek-key-file FILE
    Path to a Customer-Supplied Encryption Key (CSEK) key file, mapping Google Compute Engine resources to user managed keys to be used when creating, mounting, or snapshotting disks. See https://cloud.google.com/compute/docs/disks/customer-supplied-encryption for more details.
--custom-cpu CUSTOM_CPU
    A whole number value indicating how many cores are desired in the custom machine type. Both --custom-cpu and --custom-memory must be specified if a custom machine type is desired, and the --machine-type flag must be omitted.
--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. 3072MiB or 9GiB) - if no units are specified, GiB is assumed. Both --custom-cpu and --custom-memory must be specified if a custom machine type is desired, and the --machine-type flag must be omitted.
--description DESCRIPTION
    Specifies a textual description of the instances.
--disk [PROPERTY=VALUE,...]
    Attaches persistent disks to the instances. The disks specified must already exist. name
        The disk to attach to the instances. When creating more than one instance and using this property, the only valid mode for attaching the disk is read-only (see mode below).
    mode
        Specifies the mode of the disk. Supported options are ro for read-only and rw for read-write. If omitted, rw is used as a default. It is an error for mode to be rw when creating more than one instance because read-write disks can only be attached to a single instance.
    boot
        If yes, indicates that this is a boot disk. The virtual machines will use the first partition of the disk for their root file systems. The default value for this is no.
    device-name
        An optional name that indicates the disk name the guest operating system will see. If omitted, a device name of the form persistent-disk-N will be used.
    auto-delete
        If yes, this persistent disk will be automatically deleted when the instance is deleted. However, if the disk is later detached from the instance, this option won't apply. The default value for this is no.
--image IMAGE
    Specifies the boot image for the instances. For each instance, a new boot disk will be created from the given image. Each boot disk will have the same name as the instance. When using this option, --boot-disk-device-name and --boot-disk-size can be used to override the boot disk's device name and size, respectively.
--image-family IMAGE_FAMILY
    The family of the image that the boot disk will be initialized with. When a family is specified instead of an image, the latest non-deprecated image associated with that family is used. By default, debian-8 is assumed for this flag.
--image-project IMAGE_PROJECT
    The project against which all image and image family references will be resolved. See --image for more details.
--local-ssd [PROPERTY=VALUE,...]
    Attaches a local SSD to the instances. This flag is currently in BETA and may change without notice. device-name
        Optional. A name that indicates the disk name the guest operating system will see. If omitted, a device name of the form local-ssd-N will be used.
    interface
        Optional. The kind of disk interface exposed to the VM for this SSD. Valid values are SCSI and NVME. SCSI is the default and is supported by more guest operating systems. NVME may provide higher performance.
--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.
--maintenance-policy MAINTENANCE_POLICY
    Specifies the behavior of the instances when their host machines undergo maintenance. TERMINATE indicates that the instances should be terminated. MIGRATE indicates that the instances should be migrated to a new host. Choosing MIGRATE will temporarily impact the performance of instances during a migration event. If omitted, MIGRATE is assumed.
--metadata KEY=VALUE,[KEY=VALUE,...]
    Metadata to be made available to the guest operating system running on the instances. Each metadata entry is a key/value pair separated by an equals sign. Metadata keys must be unique and less than 128 bytes in length. Values must be less than or equal to 32,768 bytes in length. Multiple arguments can be passed to this flag, e.g., --metadata key-1=value-1,key-2=value-2,key-3=value-3. In images that have Compute Engine tools installed (https://cloud.google.com/compute/docs/images) on them, the following metadata keys have special meanings: startup-script
        Specifies a script that will be executed by the instances once they start running. For convenience, --metadata-from-file can be used to pull the value from a file.
    startup-script-url
        Same as startup-script except that the script contents are pulled from a publicly-accessible location on the web.
--metadata-from-file KEY=LOCAL_FILE_PATH,[KEY=LOCAL_FILE_PATH,...]
    Same as --metadata except that the value for the entry will be read from a local file. This is useful for values that are too large such as startup-script contents.
--network NETWORK; default="default"
    Specifies the network that the instances will be part of. This is mutually exclusive with --subnet. If neither is specified, this defaults to the "default" network.
--no-address
    If provided, the instances will not be assigned external IP addresses.
--no-scopes
    If provided, the default scopes (https://www.googleapis.com/auth/cloud.useraccounts.readonly, 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/service.management.readonly, https://www.googleapis.com/auth/servicecontrol) are not added to the instances.
--preemptible
    If provided, instances will be preemptible and time-limited. Instances may be preempted to free up resources for standard VM instances, and will only be able to run for a limited amount of time. Preemptible instances can not be restarted and will not migrate.
--private-network-ip PRIVATE_NETWORK_IP
    Specifies the RFC1918 IP to assign to the instance. The IP should be in the subnet or legacy network IP range.
--require-csek-key-create
    Refuse to create resources not protected by a user managed key in the key file when --csek-key-file is given. This behavior is enabled by default to prevent incorrect gcloud invocations from accidentally creating resources with no user managed key. Disabling the check allows creation of some resources without a matching Customer-Supplied Encryption Key in the supplied --csek-key-file. See https://cloud.google.com/compute/docs/disks/customer-supplied-encryption for more details. Enabled by default, use --no-require-csek-key-create to disable.
--restart-on-failure
    The instances will be 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.
--scopes [ACCOUNT=]SCOPE,[[ACCOUNT=]SCOPE,...]
    Specifies service accounts and scopes for the instances. Service accounts generate access tokens that can be accessed through the instance metadata server and used to authenticate applications on the instance. The account can be either an email address or an alias corresponding to a service account. If account is omitted, the project's default service account is used. The default service account can be specified explicitly by using the alias default. Example:
        $ gcloud compute instances create example-instance \
            --scopes compute-rw,me@project.gserviceaccount.com=storage-rw
    If this flag is not provided, the following scopes are used: https://www.googleapis.com/auth/cloud.useraccounts.readonly, 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/service.management.readonly, https://www.googleapis.com/auth/servicecontrol. To create instances with no scopes, use --no-scopes:
        $ gcloud compute instances create example-instance --no-scopes
    SCOPE can be either the full URI of the scope or an alias. Available aliases are:
    Alias | URI
    bigquery | https://www.googleapis.com/auth/bigquery
    cloud-platform | https://www.googleapis.com/auth/cloud-platform
    compute-ro | https://www.googleapis.com/auth/compute.readonly
    compute-rw | https://www.googleapis.com/auth/compute
    datastore | https://www.googleapis.com/auth/datastore
    logging-write | https://www.googleapis.com/auth/logging.write
    monitoring | https://www.googleapis.com/auth/monitoring
    monitoring-write | https://www.googleapis.com/auth/monitoring.write
    service-control | https://www.googleapis.com/auth/servicecontrol
    service-management | https://www.googleapis.com/auth/service.management.readonly
    sql | 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
    useraccounts-ro | https://www.googleapis.com/auth/cloud.useraccounts.readonly
    useraccounts-rw | https://www.googleapis.com/auth/cloud.useraccounts
    userinfo-email | https://www.googleapis.com/auth/userinfo.email
--subnet SUBNET
    Specifies the subnet that the instances will be part of. This is mutally exclusive with --network.
--tags TAG,[TAG,...]
    Specifies a list of tags to apply to the instances for identifying the instances to which network firewall rules will apply. See gcloud compute firewall-rules create(1) for more details.
--zone ZONE
    The zone of the instances to create. If not specified, you will be prompted to select a zone. 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.

GLOBAL FLAGS
Run $ gcloud help for a description of flags available to all commands.

EXAMPLES
To create an instance with the latest Red Hat Enterprise Linux 6 image available, run:
    $ gcloud compute instances create example-instance --image rhel-6 \
        --zone us-central1-a