Skip to main content

replicated vm create

Create one or more test VMs with specified distribution, version, and configuration options.

Synopsis

Create one or more test VMs with a specified distribution, version, and a variety of customizable configuration options.

This command allows you to provision VMs with different distributions (e.g., Ubuntu, RHEL), versions, instance types, and more. You can set the number of VMs to create, disk size, and specify the network to use. If no network is provided, a new network will be created automatically. You can also assign tags to your VMs and use a TTL (Time-To-Live) to define how long the VMs should live. If no TTL is specified, the default TTL is 1 hour.

By default, the command provisions one VM, but you can customize the number of VMs to create by using the "--count" flag. Additionally, you can use the "--dry-run" flag to simulate the creation without actually provisioning the VMs.

The command also supports a "--wait" flag to wait for the VMs to be ready before returning control, with a customizable timeout duration.

VMs are currently a beta feature.

replicated vm create [flags]

Examples

# Create a single Ubuntu 22.04 VM
replicated vm create --distribution ubuntu --version 22.04

# Create 3 Ubuntu 22.04 VMs
replicated vm create --distribution ubuntu --version 22.04 --count 3

# Create 5 Ubuntu VMs with a custom instance type and disk size
replicated vm create --distribution ubuntu --version 22.04 --count 5 --instance-type r1.medium --disk 100

# Create a VM with an SSH public key
replicated vm create --distribution ubuntu --version 22.04 --ssh-public-key ~/.ssh/id_rsa.pub

# Create a VM with multiple SSH public keys
replicated vm create --distribution ubuntu --version 22.04 --ssh-public-key ~/.ssh/id_rsa.pub --ssh-public-key ~/.ssh/id_ed25519.pub

# Create a VM with an SSH public key, then SSH in.
# The Linux user provisioned on the VM is taken from the part of the key's
# comment before the first '@'. A key with comment "ci@host" creates user "ci",
# so pass --username to vm ssh-endpoint to connect as that user.
ssh-keygen -t ed25519 -C ci@host -f /tmp/ci_key -N ""
replicated vm create --distribution ubuntu --ssh-public-key /tmp/ci_key.pub --name my-vm --wait 5m
ssh -i /tmp/ci_key $(replicated vm ssh-endpoint my-vm --username ci)

Options

--count int Number of matching VMs to create (default 1)
--disk int Disk Size (GiB) to request per node (default 50)
--distribution string Distribution of the VM to provision
--dry-run Dry run
-h, --help help for create
--instance-type string The type of instance to use (e.g. r1.medium)
--name string VM name (defaults to random name)
--network string The network to use for the VM(s). If not supplied, create a new network
--network-policy string The network policy to use for the VM(s)
-o, --output string The output format to use. One of: json|table|wide (default "table")
--ssh-public-key stringArray Path to SSH public key file to add to the VM (can be specified multiple times). The Linux user that receives the key is derived from the key's comment: the portion before the first '@'. For example, a comment of 'runner@host' creates a user named 'runner'; pass that name via 'replicated vm ssh-endpoint --username runner' to connect.
--tag stringArray Tag to apply to the VM (key=value format, can be specified multiple times)
--ttl string VM TTL (duration, max 48h)
--version string Version to provision (format is distribution dependent)
--wait duration Wait duration for VM(s) to be ready (leave empty to not wait)

Options inherited from parent commands

--app string The app slug or app id to use in all calls
--debug Enable debug output
--profile string The authentication profile to use for this command
--token string The API token to use to access your app in the Vendor API

SEE ALSO