GCLOUD_COMPUTE_INSTANCES_CREATE(1)

NAME

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

SYNOPSIS

gcloud compute instances create INSTANCE_NAMES [INSTANCE_NAMES ...] [--accelerator=[type=TYPE,[count=COUNT],...]] [--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-extensions] [--custom-memory=CUSTOM_MEMORY] [--description=DESCRIPTION] [--disk=[auto-delete=AUTO-DELETE],[boot=BOOT],[device-name=DEVICE-NAME],[mode=MODE],[name=NAME]] [--image-project=IMAGE_PROJECT] [--labels=[KEY=VALUE,...]] [--local-ssd=[device-name=DEVICE-NAME],[interface=INTERFACE]] [--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] [--preemptible] [--private-network-ip=PRIVATE_NETWORK_IP] [--no-require-csek-key-create] [--no-restart-on-failure] [--subnet=SUBNET] [--tags=TAG,[TAG,...]] [--zone=ZONE] [--address=ADDRESS | --no-address] [--image=IMAGE | --image-family=IMAGE_FAMILY] [--no-scopes | --scopes=[SCOPE,...]] [--no-service-account | --service-account=SERVICE_ACCOUNT] [GCLOUD_WIDE_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

    INSTANCE_NAMES [INSTANCE_NAMES ...]
        The names of the instances to create.

FLAGS

    --accelerator=[type=TYPE,[count=COUNT],...]
        Attaches accelerators (e.g. GPUs) to the instances.

        type
            The specific type (e.g. nvidia-tesla-k80 for nVidia Tesla K80) of accelerator to attach to the instances. Use 'gcloud compute accelerator-types list' to learn about all available accelerator types.

        count
            The number of pieces of the accelerator to attach to the instances. The default value is 1.

    --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. If you pass - as value of the flag the CSEK will be read from stdin. 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-extensions
        If provided, uses extended custom machine type. Both --custom-cpu and --custom-memory must be specified if --custom-extensions is provided.

    --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. 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=[auto-delete=AUTO-DELETE],[boot=BOOT],[device-name=DEVICE-NAME],[mode=MODE],[name=NAME]
        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-project=IMAGE_PROJECT
        The project against which all image and image family references will be resolved. It is best practice to define image-project.

        —   If specifying one of our public images, image-project must be provided.

        —   If there are several of the same image-family value in multiple projects, image-project must be specified to clarify the image to be used.

        —   If not specified and either image or image-family is provided, the current default project is used.

    --labels=[KEY=VALUE,...]
        A list of label KEY=VALUE pairs to add.

    --local-ssd=[device-name=DEVICE-NAME],[interface=INTERFACE]
        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. The default is MIGRATE. MAINTENANCE_POLICY must be one of:

        MIGRATE
            The instances should be migrated to a new host. This will temporarily impact the performance of instances during a migration event.

        TERMINATE
            The instances should be terminated.

    --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 on them, such as the official images (https://cloud.google.com/compute/docs/images), 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
        Specifies the network that the instances will be part of. If --subnet is also specified subnet must be a subnetwork of network specified by --network. If neither is specified, this defaults to the "default" network.

    --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.

    --subnet=SUBNET
        Specifies the subnet that the instances will be part of. If --network is also specified subnet must be a subnetwork of network specified by --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 may 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.

At most one of these may be specified:

    --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.

    --no-address
        If provided, the instances will not be assigned external IP addresses.

At most one of these may be specified:

    --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. To view a list of public images and projects, run $ gcloud compute images list. It is best practice to use --image when a specific version of an image is needed. 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. It is best practice to use --image-family when the latest version of an image is needed. By default, debian-9 is assumed for this flag.

At most one of these may be specified:

    --no-scopes
        Create instance without scopes

    --scopes=[SCOPE,...]
        If not provided, the instance will be assigned the default scopes, described below. SCOPE can be either the full URI of the scope or an alias. Available aliases are:
        default
          Scopes assigned to instances by default:
          - 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/pubsub
          - https://www.googleapis.com/auth/service.management.readonly
          - https://www.googleapis.com/auth/servicecontrol
          - https://www.googleapis.com/auth/trace.append
        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 (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
        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
    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.

At most one of these may be specified:

    --no-service-account
        Create instance without service account

    --service-account=SERVICE_ACCOUNT
        A service account is an identity attached to the instance. Its access tokens can be accessed through the instance metadata server and are used to authenticate applications on the instance. The account can be either an email address or an alias corresponding to a service account. You can explicitly specify the Compute Engine default service account using the 'default' alias. If not provided, the instance will get project's default service account.

GCLOUD WIDE FLAGS
These flags are available to all commands: --account, --configuration, --flatten, --format, --help, --log-http, --project, --quiet, --trace-token, --user-output-enabled, --verbosity. Run $ gcloud help for details.

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