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
<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
--------------
@ -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
still occur with the contents of any local storage being wiped between
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