Document using ramdisks with the ramdisk deploy interface

Change-Id: Ibc28cbfaa9331343c1f91f0e6b32aafda3e5718c
Depends-On: https://review.opendev.org/c/openstack/ironic-python-agent-builder/+/767376
This commit is contained in:
Dmitry Tantsur 2020-12-16 18:56:54 +01:00
parent a58b88c737
commit 20f25068c6
1 changed files with 47 additions and 1 deletions

View File

@ -39,7 +39,46 @@ or update an existing node:
You can also use it with :ref:`redfish virtual media You can also use it with :ref:`redfish virtual media
<redfish-virtual-media-ramdisk>` instead of iPXE. <redfish-virtual-media-ramdisk>` instead of iPXE.
.. TODO(dtantsur): document how exactly to create and boot a ramdisk Creating a ramdisk
------------------
A ramdisk can be created using the ``ironic-ramdisk-base`` element from
ironic-python-agent-builder_, e.g. with Debian:
.. code-block:: shell
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:
* openssh-server_ to install the SSH server since it's not provided by default
by some minimal images.
* devuser_ or dynamic-login_ to provide SSH access.
* dhcp-all-interfaces_ or simple-init_ to configure networking.
The resulting files (``/output/ramdisk.kernel`` and
``/output/ramdisk.initramfs`` in this case) can then be used when `Booting a
ramdisk`_.
Booting a ramdisk
-----------------
Pass the kernel and ramdisk as normally, also providing the ramdisk as an image
source, for example,
.. code-block:: shell
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.
Booting an ISO Booting an ISO
-------------- --------------
@ -73,3 +112,10 @@ or desired. As such, this interface does come with several caveats:
* As with all deployment interfaces, automatic cleaning of the node will * As with all deployment interfaces, automatic cleaning of the node will
still occur with the contents of any local storage being wiped between still occur with the contents of any local storage being wiped between
deployments. deployments.
.. _ironic-python-agent-builder: https://opendev.org/openstack/ironic-python-agent-builder
.. _openssh-server: https://docs.openstack.org/diskimage-builder/latest/elements/openssh-server/README.html
.. _devuser: https://docs.openstack.org/diskimage-builder/latest/elements/devuser/README.html
.. _dynamic-login: https://docs.openstack.org/diskimage-builder/latest/elements/dynamic-login/README.html
.. _dhcp-all-interfaces: https://docs.openstack.org/diskimage-builder/latest/elements/dhcp-all-interfaces/README.html
.. _simple-init: https://docs.openstack.org/diskimage-builder/latest/elements/simple-init/README.html