summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Tantsur <dtantsur@protonmail.com>2020-12-16 18:56:54 +0100
committerDmitry Tantsur <dtantsur@protonmail.com>2021-01-06 13:14:35 +0000
commitc0b6044133cdd1afdd7f9b87131934fd0b58385d (patch)
treea4e1c001c50f1f163a4a34c7d0a1a0d068fcb0ca
parent88a1e954fa29b1f89b145afff4c646baac655335 (diff)
downloadironic-c0b6044133cdd1afdd7f9b87131934fd0b58385d.tar.gz
Document using ramdisks with the ramdisk deploy interface
Change-Id: Ibc28cbfaa9331343c1f91f0e6b32aafda3e5718c Depends-On: https://review.opendev.org/c/openstack/ironic-python-agent-builder/+/767376 (cherry picked from commit 20f25068c627974ae8c38ca249fcd96ec6924ed0)
-rw-r--r--doc/source/admin/ramdisk-boot.rst48
1 files changed, 47 insertions, 1 deletions
diff --git a/doc/source/admin/ramdisk-boot.rst b/doc/source/admin/ramdisk-boot.rst
index cd6c2151f..fdb810569 100644
--- a/doc/source/admin/ramdisk-boot.rst
+++ b/doc/source/admin/ramdisk-boot.rst
@@ -44,7 +44,46 @@ Using virtual media:
--deploy-interface ramdisk \
--boot-interface redfish-virtual-media
-.. 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
--------------
@@ -78,3 +117,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