Learn how to use Bring Your Own Image (BYOI) on your OVHcloud Dedicated Server.
The Bring Your Own Image technology (BYOI) enables you to deploy cloudready images directly on your dedicated server. You can therefore use the bare metal service as a resource for your deployments.
What does cloudready mean?
The cloudready standard generally means being agnostic of the infrastructure on which the image is deployed. In addition to the requirements and limitations mentioned below, you must ensure that the image (downloaded or generated) answers correctly to the definition of technical expectations of a cloudready image.
Requirements
- a dedicated server in your OVHcloud account
- access to the OVHcloud Control Panel (for the "Deployment via Control Panel" section of this guide)
- access to the OVHcloud API (for the "Deployment via API" section of this guide)
- your image must be smaller than the Server RAM minus 3GiB
Instructions
Technical limitations:
There are some technical limitations linked to the use of physical products such as dedicated servers. Here is a non-exhaustive list, to keep in mind during your deployment preparation:
- Boot type: uefi or legacy
- Partition type: MBR or GPT
- Image format: qcow2
- Bring Your Own Image (BYOI) does not support software RAID configuration at install time, but you can use the service Bring Your Own Linux (BYOLinux) for that. Choose the custom image method that fits your needs: Bring Your Own Image (BYOI) / Bring Your Own Linux (BYOLinux), a comparison sheet.
- If Hardware RAID is supported, it is because it is configured before the image is deployed on the disk.
Deployment methods:
- Deployment via the Control Panel: allows you to simply deploy your image using the OVHcloud Control Panel.
- Deployment via API: you can use the OVHcloud API to integrate images into your own scripts to automate deployments.
Deploy your image via the Control Panel
From the OVHcloud Control Panel:
- Click
Bare Metal Cloud
in the top navigation bar. - Select Dedicated servers in the left-side menu and choose your server.
- In the General information box click the more options
...
button next to Operating system (OS) then clickInstall
.
In the window that appears, select Install from an OVHcloud template
and click Next
.
In the window that appears, select Custom
in the menu, then Bring Your Own Image - byoi
, and click Next
.
You will be redirected to the configuration page. Make sure your image URL is in the correct format. Complete the rest of the required fields on this page. Once you have confirmed that the information is correct, click Confirm
.
You can find more details on the options in the deployment options section below.
For more information and examples about Cloud-Init's ConfigDrive, please read the official documentation on this page.
Deploying your image via the APIs
Log in to the API console and go to the /dedicated/server
section.
POST /dedicated/server/{serviceName}/install/start
The Bring Your Own Image (BYOI) payload should be similar to the following:
userMetadata
section, only imageURL
and imageType
are mandatory.Even though the configDrive user data could be sent to the API directly in clear text by escaping special characters, it is recommended to send a base64-encoded script to the API. You can use the following UNIX/Linux command to encode your data:
Here is the clear-text configDrive user data from the example above:
Once you completed the fields, start the deployment by clicking Execute
.
Deployment options
Field | Description | Required |
---|---|---|
userMetadata/sshKey | SSH public key | ❌ |
userMetadata/imageURL | Your image URL | ✅ |
userMetadata/imageType | Your image format (qcow2, raw) | ✅ |
userMetadata/imageCheckSum | Your image's checksum | ❌ |
userMetadata/imageCheckSumType | Your image's checksum type (md5, sha1, sha256, sha512) |
❌ (except if checksum provided) |
userMetadata/configDriveUserData | Your configDrive file content¹ | ❌ |
userMetadata/configDriveMetadata | Custom Cloud-Init metadata | ❌ |
userMetadata/httpHeaders?Key | HTTP Headers key | ❌² |
userMetadata/httpHeaders?Value | HTTP Headers value | ❌² |
¹ Can either be a #cloud-config
or a script. It must be in one-line and have \n
for line-return
² Use only if you need HTTP Headers, such as Basic Auth
configDriveUserData
).
Result examples
Here are some results you might have:
Message | Meaning |
---|---|
Can't write qcow2 on disk. | Could not burn qcow2 image on disk. |
Could not download, qcow2 image is too big to download in memory. | There is not enough RAM space to store your image. |
Could not download image located: http://path/of/your/image . |
Impossible to download image located http://path/of/your/image . |
Bad format image, expected: qcow2, raw. | Incorrect image format. |
Bad checkSumType, expected: sha1, sha256, md5. | Incorrect checksum type. |
Bad $checkSumType for downloaded file, got: 1234 while expecting 5678. | Incorrect checksum signature. |
Can not move backup GPT data structures to the end of disk. | Disk format is not correct. |
Could not create configdrive on disk. | Impossible to create config-drive partition. |
Go further
OVHcloud API and OS Installation
Bring Your Own Linux (BYOLinux)
Bring Your Own Image (BYOI) / Bring Your Own Linux (BYOLinux), a comparison sheet
For more information and tutorials, please see our other Dedicated Servers support guides or explore the guides for other OVHcloud products and services.