---
title: Provisioning
url: https://docs.vultr.com/products/compute/instances/bare-metal/provisioning
description: A guide explaining how to set up and deploy Vultr Bare Metal server instances.
publish_date: 2024-09-23T20:20:19.903430Z
last_updated: 2026-05-26T18:49:28.277430Z
---

# How to Provision Vultr Bare Metal Instances

Vultr Bare Metal instances are single-tenant dedicated cloud servers designed for applications with the most demanding performance and security requirements. Bare Metal instances don't use any virtualization and include an operating system that enables you to run applications on the specified server hardware.

Follow this guide to provision Vultr Bare Metal instances using the Vultr Console, API, CLI, or Terraform.

=== "Vultr Console"

    1. Navigate to **Products** and select **Compute** on the list of product options.
    1. Click **Deploy** to access the **Deploy New Instance** page.
    1. Select **Bare Metal** from the list of options.
    1. Choose your desired Vultr location to deploy the Bare Metal instance.
    1. Select your Bare Metal instance specifications from the list of available Vultr plans.
    1. Click **Configure Software**.
    1. Select a cloud image to install on your instance based on the following options:

        * **Operating System**: Installs a fresh operating system image on the instance.
        * **Marketplace Apps**: Install a prebuilt software stack or application with the recommended operating system image.
        * **iPXE**: Allows you to boot your instance using remote disk images or scripts.

    1. Select optional **Server Settings** to apply on the instance.

        * **SSH Keys**: Installs a specific SSH key on the instance.
        * **Startup Script**: Enables a startup script to execute at deployment or a PXE script to automate the operating system installation.
        * **Firewall Group**: Activates a Vultr Firewall group to filter incoming network traffic on the instance.

    1. Select the Bare Metal instance Disk configuration based on the following options:

        * **RAID 1**: Configures disks in a software RAID 1 array for data redundancy.
        * **No RAID**: Formats and mounts disks individually without RAID configuration.
        * **No RAID (Extra disks unformatted)**: Leaves additional disks unformatted for manual configuration.

    1. Enter a new hostname in the **Server Hostname** field and a descriptive label in the **Server Label** field to identify the instance.

    1. Configure **Additional Features** for the instance.

        * **Instance Connectivity**: Select how the instance connects to the internet.
            - **Instance(s) with Public IP**: Assigns public IP addresses directly to the instance. Under **Instance Address**, **Public IPv4** is enabled by default. Select **Public IPv6** to enable IPv6 addressing. After selecting IPv6, you can optionally deselect **Public IPv4** to create an IPv6-only instance.
            - **Private Instance(s) behind NAT Gateway**: Routes internet traffic through a NAT Gateway in a Virtual Private Cloud (VPC) Network. Select an existing VPC Network with a NAT Gateway or click **Add VPC Network** to create a new one.
        * **VPC Network**: Connects the instance to a VPC Network in the current location.
        * **Limited User Login**: Creates a `linuxuser` non-root user with sudo privileges as the default user account instead of `root`.

    1. Click **Deploy** to provision the instance.

=== "Vultr API"

    1. Send a `POST` request to the [**Create Bare Metal Instance** endpoint](https://www.vultr.com/api/#tag/baremetal/operation/create-baremetal) to create a new Vultr Bare Metal instance. Replace `VULTR_LOCATION`, `INSTANCE_PLAN`, `OS_ID`, `INSTANCE_LABEL`, and `HOSTNAME` with your target values.

        ```console
        $ curl "https://api.vultr.com/v2/bare-metals" \
          -X POST \
          -H "Authorization: Bearer ${VULTR_API_KEY}" \
          -H "Content-Type: application/json" \
          --data '{
            "region" : "VULTR_LOCATION",
            "plan" : "INSTANCE_PLAN",
            "os_id" : OS_ID,
            "label" : "INSTANCE_LABEL",
            "hostname": "HOSTNAME"
          }'
        ```

        Visit the [**Create Bare Metal Instance** API page](https://www.vultr.com/api/#tag/baremetal/operation/create-baremetal) to view additional attributes you can apply on the Vultr Bare Metal instance.

=== "Vultr CLI"

    1. Create a new Vultr Bare Metal instance. Replace `VULTR_LOCATION`, `INSTANCE_PLAN`, `OS_ID`, `INSTANCE_LABEL`, and `HOSTNAME` with your target values.

        ```console
        $ vultr-cli bare-metal create --region VULTR_LOCATION --plan INSTANCE_PLAN --os OS_ID --label INSTANCE_LABEL --hostname HOSTNAME
        ```

        Run `vultr-cli bare-metal create --help` to view additional options you can apply on the Vultr Bare Metal instance.

=== "Terraform"

    1. Ensure the [Vultr Terraform provider](https://registry.terraform.io/providers/vultr/vultr/latest/docs) is configured in your Terraform project.

    1. Add the Bare Metal instance resource to your Terraform configuration.

        ```terraform
        terraform {
            required_providers {
                vultr = {
                    source  = "vultr/vultr"
                    version = "~> 2.26"
                }
            }
        }

        provider "vultr" {}

        resource "vultr_bare_metal_server" "bm" {
            region        = "del"                   # Target deployment region
            plan          = "vbm-4c-32gb"           # Bare Metal plan ID
            os_id         = 2284                    # Ubuntu 24.04 LTS x64
            label         = "baremetal-instance-1"
            hostname      = "baremetal-instance-1"
            enable_ipv6   = true
        }

        output "public_ip" {
            value = vultr_bare_metal_server.bm.main_ip
        }
        ```

    1. Apply the configuration and observe the following output:

        ```
        Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
        ```