Clone a Linode

Clone your Linode's existing disks, configuration profiles, and interfaces to another Linode on your account. Consider these points before cloning a Linode:

  • Cloning to a new Linode incurs a charge on your account.

  • If cloning to an existing Linode, any actions currently running or queued need to finish before you can clone to it.

  • You can run up to five concurrent clone operations, from a single Linode. If you exceed this limit, you'll receive an HTTP 400 error.

  • For Linodes using Linode interfaces, the region where you want the clone to live also needs to support Linode interfaces. You can run the GET a region operation to see what's supported. Your user's account settings also need ot be set to allow creation of Linodes with Linode interfaces.

  • Any tags you have set on your source Linode will be cloned to the target Linode.

  • If your source Linode is protected with a resource lock, the lock is not included on the clone. You'll need to add a new resource lock if you want to protect the clone.

  • If the target Linode uses Metadata, with has_user_data set to true, you need to create the clone with metadata.user_data in the request.

  • If the target Linode has a vpc interface on its active legacy configuration profile, and it includes a 1:1 NAT, the resulting clone is configured with an any 1:1 NAT. See the VPC documentation guide for its specifications and limitations.

  • Only next generation network (NGN) data centers (regions) support VLANs. If a VLAN is attached to your Linode and you try to clone it to a non-NGN region, the clone won't start. If a Linode can't be cloned because of an incompatibility, you're prompted to select a different region or contact support. See the VLANs Overview guide for more specifications and limitations.

Permissions and scopes

To call this operation, you need permissions, based on the model you're using:

  • Identity and access permissions. Your user needs a role with these permissions. Learn more.

    • Permissions: clone_linode
  • OAuth scopes. Your user needs these scopes assigned. Learn more.

    • Scopes: linodes:read_write

CLI

linode-cli linodes clone 123 \ --linode_id 124 \ --region us-east \ --type g6-standard-2 \ --label cloned-linode \ --backups_enabled true \ --placement_group.id 528 \ --disks 25674 \ --configs 23456 \ --private_ip true \ --metadata.user_data I2Nsb3VkLWNvbmZpZw==

Learn more

Path Params
string
enum
required

Enum Call either the v4 URL, or v4beta for operations still in Beta.

Allowed:
integer
required

ID of the Linode to clone.

Body Params
boolean

If this field is set to true, the created Linode will automatically be enrolled in the Linode Backup service. This will incur an additional charge. Pricing is included in the response from List types.

  • Can only be included when cloning to a new Linode.
configs
array of integers

An array of configuration profile IDs.

  • If the configs parameter is not provided, then all configuration profiles and their associated disks will be cloned from the source Linode. Any disks specified by the disks parameter will also be cloned.
  • If an empty array is provided for the configs parameter, then no configuration profiles (nor their associated disks) will be cloned from the source Linode. Any disks specified by the disks parameter will still be cloned.
  • If a non-empty array is provided for the configs parameter, then the configuration profiles specified in the array (and their associated disks) will be cloned from the source Linode. Any disks specified by the disks parameter will also be cloned.
configs
disks
array of integers

An array of disk IDs.

  • If the disks parameter is not provided, then no extra disks will be cloned from the source Linode. All disks associated with the configuration profiles specified by the configs parameter will still be cloned.
  • If an empty array is provided for the disks parameter, then no extra disks will be cloned from the source Linode. All disks associated with the configuration profiles specified by the configs parameter will still be cloned.
  • If a non-empty array is provided for the disks parameter, then the disks specified in the array will be cloned from the source Linode, in addition to any disks associated with the configuration profiles specified by the configs parameter.
disks
string
deprecated

Deprecated A label used to group Linodes for display. Linodes are not required to have a group.

string
length between 3 and 64

The label to assign this Linode when cloning to a new Linode.

  • Can only be provided when cloning to a new Linode.
  • Defaults to linode.
integer

If an existing Linode is the target for the clone, the ID of that Linode. The existing Linode must have enough resources to accept the clone.

string
enum

Defines the maintenance policy for the new Linode. If you don't provide it, the new Linode inherits the maintenance policy from the original Linode. Review maintenance policy documentation for more details.

Allowed:
metadata
object

Write-only An object containing user-defined data relevant to the creation of Linodes.

placement_group
object

Include this to assign this Linode to an existing placement group. Consider these points when cloning:

  • If the Linode you're cloning exists in a placement group, the API won't automatically add the cloned instance to the same placement group. You need to specify a placement group to add the clone to.

  • The target placement group needs to be in the same region set for this Linode.

  • The placement group needs to have capacity. Run the Get a region operation and note either the maximum_linodes_per_pg (strict) or maximum_linodes_per_flexible_pg (flexible), based on your selected placement_group_policy. These represent the Linode limit per placement group, for each placement_group_policy type. You can then run the Get a placement group operation to review the Linodes in that group.

boolean

If true, the created Linode will have private networking enabled and assigned a private IPv4 address.

  • Can only be provided when cloning to a new Linode.
string

This is the Region where the Linode will be deployed. To view all available Regions you can deploy to, run List regions.

  • Region can only be provided and is required when cloning to a new Linode.
string

A Linode's Type determines what resources are available to it, including disk space, memory, and virtual cpus. The amounts available to a specific Linode are returned as specs on the Linode object.

To view all available Linode Types you can deploy with, run List types.

  • Type can only be provided and is required when cloning to a new Linode.
Responses

Response body
object
alerts
object
integer

The percentage of CPU usage required to trigger an alert. If the average CPU usage over two hours exceeds this value, we'll send you an alert. Your Linode's total CPU capacity is represented as 100%, multiplied by its number of cores. For example, a two-core Linode's CPU capacity is represented as 200%. If you want to be alerted at 90% of a two-core Linode's CPU capacity, set the alert value to 180. The default value is 90% multiplied by the number of cores. If the value is set to 0 (zero), the alert is disabled.

integer

The amount of disk IO operation per second required to trigger an alert. If the average disk IO over two hours exceeds this value, we'll send you an alert. If set to 0 (zero), this alert is disabled.

integer

The amount of incoming traffic, in Mbit/s, required to trigger an alert. If the average incoming traffic over two hours exceeds this value, we'll send you an alert. If this is set to 0 (zero), the alert is disabled.

integer

The amount of outbound traffic, in Mbit/s, required to trigger an alert. If the average outbound traffic over two hours exceeds this value, we'll send you an alert. If this is set to 0 (zero), the alert is disabled.

integer

The percentage of network transfer that may be used before an alert is triggered. When this value is exceeded, we'll alert you. If this is set to 0 (zero), the alert is disabled.

backups
object

Information about this Linode's backups status. For information about available backups, run List backups.

boolean

Read-only Whether backups taken for this Linode are available for restoration. Backups undergoing maintenance are not available for restoration.

boolean

Read-only If this Linode has the Backup service enabled. To enable backups, run Enable backups.

date-time

Read-only The last successful backup time. Displayed as null if there was no previous backup.

schedule
object
capabilities
array of strings

Limited availability, Read-only A list of capabilities this Linode supports.

capabilities
date-time

Read-only When this Linode was created.

string | null
enum
Defaults to enabled

Read-only Indicates the local disk encryption setting for this Linode. If the Linode is part of an LKE cluster, the value is null.

enabled disabled

string
deprecated

Deprecated, Filterable The group label for this Linode.

boolean

Read-only Whether this Linode was provisioned with user_data provided via the Metadata service. See the Create a Linode description for more information on Metadata.

uuid

Read-only The Linode's host machine, as a UUID.

string
enum

Read-only The virtualization software powering this Linode.

kvm

integer

Filterable, Read-only This Linode's unique identifier, which you need to provide for all operations impacting this Linode.

string | null

An Image ID to deploy the Linode Disk from.

Run the List images operation with authentication to view all available Images. Official Linode Images start with linode/, while your Account's Images start with private/. Creating a disk from a Private Image requires read_only or read_write permissions for that Image. Run the Update a user's grants operation to adjust permissions for an Account Image.

string
enum

Filterable, Read-only Indicates if the Linode is configured to use Linode interfaces (linode) or legacy configuration profile interfaces (legacy_config).

legacy_config linode

ipv4
array of strings

Filterable, Read-only This Linode's IPv4 Addresses. Each Linode is assigned a single public IPv4 address upon creation, and may get a single private IPv4 address if needed. You may need to Open a support ticket to get additional IPv4 addresses. IPv4 addresses may be reassigned between your Linodes, or shared with other Linodes. See the networking operations for details.

ipv4
string | null

Read-only This Linode's IPv6 SLAAC address. This address is specific to a Linode, and may not be shared. If the Linode has not been assigned an IPv6 address, the return value will be null.

string
length between 3 and 64

Filterable Provides a name for the Linode. If not provided, the API generates one for it. A Linode label has some constraints:

  • It needs to begin and end with an alphanumeric character.

  • It can only consist of alphanumeric characters, hyphens (-), underscores (_), or periods (.).

  • It can't contain two consecutive hyphens (--), underscores (__) or periods (..).

integer | null

Read-only The ID of the Kubernetes cluster if the Linode is part of cluster.

string
enum

The maintenance policy configured by the user for this Linode. Review maintenance policy documentation for more details.

linode/migrate linode/power_off_on

placement_group
object | null

Read-only Details on the placement group that this Linode belongs to. Empty if the Linode isn't in a placement group.

integer

The placement group's ID. You need to provide it for all operations that affect it.

string
length ≥ 1

Filterable The unique name set for the placement group. A label has these constraints:

  • It needs to begin and end with an alphanumeric character.
  • It can only consist of alphanumeric characters, hyphens (-), underscores (_), or periods (.).
string
enum

How requests to add future Linodes to your placement group are handled, and whether it remains compliant:

  • strict. Don't assign a new Linode if it breaks the grouped-together or spread-apart model set by the placement_group_type. Use this to ensure the placement group stays compliant (is_compliant: true).
  • flexible. Assign a new Linode, even if it breaks the grouped-together or spread-apart model set by the placement_group_type. This makes the group non-compliant (is_compliant: false). You need to wait for Akamai to move the offending Linode to make it compliant again, once the necessary capacity is available in the region. Offers flexibility to add future Linodes if compliance isn't an immediate concern.

​​​​​

📘

In rare cases, non-compliance can occur with a strict placement group if Akamai needs to failover or migrate your Linodes for maintenance. Fixing non-compliance for a strict placement group is prioritized over a flexible group.

strict flexible

string
enum

Filterable, Read-only How Linodes are distributed in your placement group. A placement_group_type using anti-affinity (anti_affinity:local) places Linodes in separate hosts, but still in the same region. This best supports the spread-apart model for high availability. A placement_group_type using affinity places Linodes physically close together, possibly on the same host. This supports the grouped-together model for low-latency.

📘

Currently, only anti_affinity:local is available for placement_group_type.

anti_affinity:local

string

Filterable, Read-only The region where you've deployed the Linode. A region can only be changed by migrating to a new data center.

string
enum

Read-only The Linode region's site type. A core region indicates a traditional cloud computing region that offers all compute services. A distributed region indicates sites that are globally dispersed to be closer to end users and workloads. These regions offer limited services.

core distributed

specs
object

Read-only Information about the resources available to this Linode.

integer

Read-only The amount of storage space, in MB, this Linode has access to. A typical Linode divides this space between a primary disk with an image deployed to it, and a swap disk, usually 512 MB. This is the default configuration created when deploying a Linode with an image through Create a Linode. While this configuration is suitable for most use cases, if you need finer control over your Linode's disks, see the List disks operations.

integer

Read-only The number of GPUs this Linode has access to.

integer

Read-only The amount of RAM, in MB, this Linode has access to. Typically, a Linode boots with all of its available RAM, but this can be configured in a config profile. See the List config profiles operation for more information.

integer

Read-only The amount of network transfer this Linode is allotted each month.

integer

Read-only The number of VCPUs this Linode has access to.

string
enum

Read-only A brief description of the Linode's current state. This value can change without direct action from you. For example, when a Linode goes into maintenance mode, its status is stopped. Status is generally self-explanatory, based on its name.

  • busy indicates you've assigned the Linode to a placement group, but the Linode is currently booting. Once the boot completes, the API completes the assignment and updates the Linode's status accordingly.

  • provisioning indicates that the API is applying operating system or Marketplace applications on the Linode.

  • billing_suspension indicates that payment is past due on the Linode, so we've suspended its use.

running offline booting busy rebooting shutting_down provisioning deleting migrating rebuilding cloning restoring stopped billing_suspension

tags
array of strings

Filterable Tags to help you organize your content.

tags
string

Read-only The type that this Linode was deployed with. To change a Linode's type, use Resize a Linode.

date-time

Read-only When this Linode was last updated.

boolean

The watchdog, named Lassie, is a Shutdown Watchdog that monitors your Linode and reboots it if it powers off unexpectedly. It works by issuing a boot job when your Linode powers off without a shutdown job being responsible. To prevent a loop, Lassie gives up if there have been more than 5 boot jobs issued within 15 minutes.

Language
Credentials