
Vultr provides a library of standard ISOs and One-Click Apps for deploying popular operating systems and applications. However, you may need to install an operating system or tool that is not included in the library, such as a custom build of Kali Linux, OpenBSD, or pfSense. In such cases, you can upload and use your own custom ISO.
This guide explains how to upload a custom ISO to Vultr, deploy new instances with it, attach or detach it from running instances, and manage ISOs using the Vultr API.
Prerequisites
Before you begin, ensure you have:
- Have access to the Vultr Customer Portal, Vultr API with a valid API key, or Vultr CLI installed and configured.
Uploading an ISO on Vultr
You can upload a custom ISO to Vultr by providing a publicly accessible URL. Once uploaded, the ISO becomes available in your account and can be used to deploy new instances or attach to existing ones. This feature is useful when you need operating systems or tools not included in Vultr’s public ISO library.
- The ISO must be smaller than 10 GB (10240 MB).
- The filename must end with the
.iso
extension. - The ISO URL must be an absolute path without authentication or query parameters.
- Each account can store a maximum of two ISOs at a time. You can delete and re-upload ISOs as needed.
- Vultr does not permit uploading Windows ISOs.
Using Vultr Customer Portal
Follow the steps below to upload an ISO to Vultr using Vultr Customer Portal.
Log in to the Vultr Customer Portal.
Navigate to Orchestration section under Products and click ISOs.
Click Create ISO, and enter the public URL of the ISO image.
Click Upload to begin the transfer.
Wait for the upload to finish. The time required depends on the size of the ISO and the speed of the source server.
Using Vultr CLI
Follow the steps below to upload an ISO to Vultr using the Vultr CLI.
Run the following command to create an ISO from a public URL. Replace
<public-url>
with the public link to your ISO file.console$ vultr-cli iso create --url <public-url>
The response includes details about the ISO. Note the
id
value for later use.Verify the upload status. Replace
<iso-id>
with the id you noted earlier.console$ vultr-cli iso get <iso-id>
Check the
STATUS
column in the response and wait until it shows completed before proceeding.
Using Vultr API
Follow the steps below to upload an ISO to Vultr using the Vultr API.
Run the following command to create an ISO from a public URL. Replace
<public-url>
with the direct link to your ISO file.console$ curl -sS --fail --compressed "https://api.vultr.com/v2/iso" \ -X POST \ -H "Authorization: Bearer ${VULTR_API_KEY}" \ -H "Content-Type: application/json" \ --data '{ "url" : "<public-url>" }' \ | jq .
The response includes details about the ISO. Note the
id
value for later use.Verify the upload status using the following command. Replace
<iso-id>
with the id you noted earlier.console$ curl -sS --fail --compressed "https://api.vultr.com/v2/iso/<iso-id>" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}" \ | jq .
Check the
status
field in the response and wait until it shows complete before proceeding.
Deploy a New Instance from a Custom ISO
In this section, you will deploy a new Vultr instance using your Custom ISO.
Using Vultr Customer Portal
Navigate to Products and click Compute.
Click Deploy.
Choose the instance Type, either Shared CPU or Dedicated CPU.
Select the deployment Location.
Choose an instance Plan that meets your workload requirements.
Click Configure Software to open the configuration options.
Go to the ISO/iPXE tab and select your Custom ISO.
Configure optional Server Settings, such as SSH Keys or a Firewall Group.
Enter a Server Hostname and an optional Server Label to identify the instance.
Select any optional Additional Features you want to enable.
Review the Deploy Summary and click Deploy to provision the instance. Wait until the instance status changes to Running.
Click the View Console icon to open the VNC console and complete the installation.
After the installation is complete, navigate to the instance information page.
Click the Settings tab, and select Custom ISO from the left menu and click Remove ISO to detach the ISO from the instance.
Using Vultr CLI
List all available ISOs in your account.
console$ vultr-cli iso list
Note the
id
of the ISO you want to use to deploy the instance.Create a new instance using the desired ISO. Replace the placeholders with your
region
,plan
,iso-id
,hostname
, andlabel
console$ vultr-cli instance create --region <region> --plan <plan> --iso <iso-id> --label <example-label> --host <example-host>
Log in to the Vultr Customer Portal.
Navigate to Products and click Compute.
Select the newly created instance.
Click the View Console icon to open the VNC console and complete the installation.
After the installation is complete, navigate to the instance information page.
Click the Settings tab, and select Custom ISO from the left menu and click Remove ISO to detach the ISO from the instance.
Using Vultr API
Follow these steps to deploy a Vultr instance using a Custom ISO via the API:
List all available ISOs in your account and note the
id
of the ISO you want to use.console$ curl -sS --fail --compressed "https://api.vultr.com/v2/iso" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}" \ | jq '.isos[] | {id, filename, status}'
Create a new instance using the ISO. Replace the placeholders with your desired
region
,plan
,hostname
,label
, andiso-id
.console$ curl -sS --fail --compressed "https://api.vultr.com/v2/instances" \ -X POST \ -H "Authorization: Bearer ${VULTR_API_KEY}" \ -H "Content-Type: application/json" \ --data '{ "region": "<region>", "plan": "<plan>", "label": "<example-label>", "iso_id": "<iso-id>", "backups": "enabled", "hostname": "<example-host>", "tags": ["a tag", "another"] }' | jq .
Note the
id
of the newly created instance from the response.Log in to the Vultr Customer Portal.
Navigate to Products and click Compute.
Select the newly created instance.
Click the View Console icon to open the VNC console and complete the installation.
After installation, detach the ISO so the instance boots from the installed OS. Replace
<instance-id>
with the id you copied earlier.console$ curl -sS --fail --compressed "https://api.vultr.com/v2/instances/<instance-id>/iso/detach" \ -X POST \ -H "Authorization: Bearer ${VULTR_API_KEY}"
The above API request detaches the ISO image from the instance and reboots the instance.
Conclusion
In this guide, you successfully uploaded a custom ISO to Vultr using the Customer Portal, CLI, and API. You deployed new instances booting from the custom ISO, completed the OS installation through the VNC console, and detached the ISO to ensure the instances booted from the installed operating system. These steps enabled you to fully manage custom deployments, streamline instance setup, and maintain greater flexibility over your server environments.
No comments yet.