Skip to main content

OpenStack

Experimental, haven't had a chance to run through this recently so YMMV.

The netboot.xyz ISO image can be used with OpenStack clouds to boot an instance and perform a custom installation of an operating system.

Command line

Start by downloading the ISO and then import it into glance:

$ wget https://boot.netboot.xyz/ipxe/netboot.xyz.iso
$ glance image-create --name netboot.xyz \
--disk-format iso \
--container-format bare \
--file netboot.xyz-dhcp.iso \
--visibility public
+------------------+--------------------------------------+
| Property | Value |
+------------------+--------------------------------------+
| checksum | 45cdcb89576b6c05598b11585aef46bc |
| container_format | bare |
| created_at | 2016-01-27T20:02:06Z |
| disk_format | iso |
| id | 4f11d49e-157b-4740-87ad-db7d59bb5d6d |
| min_disk | 0 |
| min_ram | 0 |
| name | netboot.xyz |
| owner | fbfce4cb346c4f9097a977c54904cafd |
| protected | False |
| size | 1048576 |
| status | active |
| tags | [] |
| updated_at | 2016-01-27T20:02:04Z |
| virtual_size | None |
| visibility | public |
+------------------+--------------------------------------+

It should only take a few seconds to import. Take the UUID from the id field returned by glance and verify that the image imported successfully:

$ glance image-show 4f11d49e-157b-4740-87ad-db7d59bb5d6d
+------------------+--------------------------------------+
| Property | Value |
+------------------+--------------------------------------+
| checksum | 45cdcb89576b6c05598b11585aef46bc |
| container_format | bare |
| created_at | 2016-01-27T20:02:06Z |
| disk_format | iso |
| id | 4f11d49e-157b-4740-87ad-db7d59bb5d6d |
| min_disk | 0 |
| min_ram | 0 |
| name | netboot.xyz |
| owner | fbfce4cb346c4f9097a977c54904cafd |
| protected | False |
| size | 1048576 |
| status | active |
| tags | [] |
| updated_at | 2016-01-27T20:02:04Z |
| virtual_size | None |
| visibility | public |
+------------------+--------------------------------------+

The image has a status of active, so we know that glance imported it properly.

Let's boot a new instance with this ISO:

nova boot --flavor m1.small \
--image <image-uuid-of-netbootxyz-image> \
--nic net-id=<network-uuid> \
netbootxyz-testing

Wait about 30 seconds, then request a console URL:

nova get-spice-console c4ff017e-1234-4053-b740-e83eade277b9 spice-html5

Open the console URL that nova returns and you should see the familiar netboot.xyz iPXE interface in the spice console!

Horizon

Start by downloading the netboot.xyz ISO to your local workstation. Follow these steps to import the image into your OpenStack cloud using Horizon:

  • Click the Compute tab on the left side, then click Images
  • Click Create Image (top right)
    • Name: netboot.xyz ISO
    • Image Source: Image File
    • Image File: (browse to the ISO you downloaded)
    • Format: ISO - Optical Disk Image
    • Public: Checked (optional, but recommended if you want other tenants to use it)
  • Click Create Image

Wait a moment for the status to become active. This should only take a few seconds. To boot an instance with the ISO you uploaded, be sure to choose Boot from image and select netboot.xyz ISO from the drop down list. Configure networking and security groups as you normally would for any other instance.

When the instance has fully built and gone to active status, click on the instance name and then go to the Console tab. Depending on your browser, you may need to click the link to show only the console.

At that point, you should be able to view the netboot.xyz iPXE menu and install your operating system.