Ironic supports booting a user provided ramdisk or an ISO image (starting with
the Victoria release) instead of deploying a node.
Most commonly this is performed when an instance is booted via PXE, iPXE or
Virtual Media, with the only local storage contents being those in memory.
It is suported by pxe
, ipxe
, redfish-virtual-media
and
ilo-virtual-media
boot interfaces.
Ramdisk/ISO boot requires using the ramdisk
deploy interface. As with most
non-default interfaces, it must be enabled and set for a node to be utilized:
[DEFAULT]
...
enabled_deploy_interfaces = iscsi,direct,ramdisk
...
Once enabled and the conductor(s) have been restarted, the interface can be set upon creation of a new node:
openstack baremetal node create --driver ipmi \
--deploy-interface ramdisk \
--boot-interface ipxe
or update an existing node:
openstack baremetal node set <NODE> --deploy-interface ramdisk
Using virtual media:
openstack baremetal node create --driver redfish \
--deploy-interface ramdisk \
--boot-interface redfish-virtual-media
A ramdisk can be created using the ironic-ramdisk-base
element from
ironic-python-agent-builder, e.g. with Debian:
export ELEMENTS_PATH=/opt/stack/ironic-python-agent-builder/dib
disk-image-create -o /output/ramdisk \
debian-minimal ironic-ramdisk-base openssh-server dhcp-all-interfaces
You should consider using the following elements:
The resulting files (/output/ramdisk.kernel
and
/output/ramdisk.initramfs
in this case) can then be used when Booting a
ramdisk.
Pass the kernel and ramdisk as normally, also providing the ramdisk as an image source, for example,
baremetal node set <NODE> \
--instance-info kernel=http://path/to/ramdisk.kernel \
--instance-info ramdisk=http://path/to/ramdisk.initramfs \
--instance-info image_source=http://path/to/ramdisk.initramfs
baremetal node deploy <NODE>
Note
The requirement to pass image_source
is artificial and will be fixed
in a future version of the Bare Metal service.
The ramdisk
deploy interface can also be used to boot an ISO image.
For example,
openstack baremetal node set <NODE> \
--instance-info boot_iso=http://path/to/boot.iso
openstack baremetal node deploy <NODE>
The intended use case is for advanced scientific and ephemeral workloads where the step of writing an image to the local storage is not required or desired. As such, this interface does come with several caveats:
instance_info/ramdisk_kernel_arguments
parameter to add options to
the kernel boot command line.Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.