From 9cfdc3f51d2cdae039a279568811dd8173fb2a4d Mon Sep 17 00:00:00 2001 From: Dmitry Tantsur Date: Fri, 16 Oct 2015 15:05:04 +0200 Subject: [PATCH] Only mention IPA in the quick start and user guides for DevStack The old ramdisk is deprecated, so we should not really default to it. Also this guide makes an assumption that agent_* and pxe_* drivers can't be used together, which is no longer the case, as IPA handles both. Consolidate the example local.conf into one enabling both pxe_* and agent_* drivers with IPA and create a separate page for explaining difference between these two. Co-Authored-By: Lilia Sampaio Change-Id: Ifeed7bf9128281b79d425f7c5dbb3d8c39e7fb68 --- doc/source/deploy/drivers.rst | 16 +++------- doc/source/deploy/user-guide.rst | 33 +++++++++++++++----- doc/source/dev/dev-quickstart.rst | 52 +++++++++++++++---------------- doc/source/drivers/ipa.rst | 49 +++++++++++++++++++++++++++++ doc/source/index.rst | 1 + 5 files changed, 104 insertions(+), 47 deletions(-) create mode 100644 doc/source/drivers/ipa.rst diff --git a/doc/source/deploy/drivers.rst b/doc/source/deploy/drivers.rst index c14f6dd1aa..370dbbcd0c 100644 --- a/doc/source/deploy/drivers.rst +++ b/doc/source/deploy/drivers.rst @@ -7,19 +7,11 @@ Enabling drivers Ironic-Python-Agent (agent) --------------------------- -To enable IPA, add the appropriate ironic agent driver to the ``enabled_drivers`` -line of the ironic.conf file. +Ironic-Python-Agent is an agent that handles *ironic* bare metal +nodes in various actions such as inspection and deployment of such +nodes, and runs processes inside of a ramdisk. -Several variants are currently supported, they are: - * agent_ilo - * agent_ipmitool - * agent_pyghmi - * agent_ssh - * agent_vbox - -.. note:: Starting with the Kilo release IPA ramdisk may also be used with ironic PXE drivers. - -For more information see the `ironic-python-agent GitHub repo `_ +For more information on this, see :ref:`IPA`. DRAC ---- diff --git a/doc/source/deploy/user-guide.rst b/doc/source/deploy/user-guide.rst index 0681ef54f7..b586379eae 100644 --- a/doc/source/deploy/user-guide.rst +++ b/doc/source/deploy/user-guide.rst @@ -211,6 +211,13 @@ Deploy Process #. Images from Glance are pulled down to the local disk of the Ironic conductor servicing the bare metal node. + #. For pxe_* drivers these include all images: both the deploy ramdisk and + user instance images. + + #. For agent_* drivers only the deploy ramdisk is stored locally. Temporary + URLs in OpenStack's Object Storage service are created for user instance + images. + #. Virtual interfaces are plugged in and Neutron API updates DHCP port to support PXE/TFTP options. @@ -222,10 +229,16 @@ Deploy Process #. The IPMI driver issues command to enable network boot of a node and power it on. -#. The DHCP boots the deploy ramdisk. The PXE driver actually copies the image - over iSCSI to the physical node. It connects to the iSCSI end point, - partitions volume, "dd" the image and closes the iSCSI connection. The - deployment is done. The Ironic conductor will switch pxe config to service +#. The DHCP boots the deploy ramdisk. Next, depending on the exact driver + used, either the conductor copies the image over iSCSI to the physical node + (pxe_* group of drivers) or the deploy ramdisk downloads the image from + a temporary URL (agent_* group of drivers), which can be generated by + a variety of object stores, e.g. *swift*, *radosgw*, etc, and uploaded + to OpenStack's Object Storage service. In the former case, the conductor + connects to the iSCSI end point, partitions volume, "dd" the image and + closes the iSCSI connection. + + The deployment is done. The Ironic conductor will switch pxe config to service mode and notify ramdisk agent on the successful deployment. #. The IPMI driver reboots the bare metal node. Note that there are 2 power @@ -236,8 +249,10 @@ Deploy Process #. The bare metal node status is updated and the node instance is made available. -Example 1: PXE Deploy Process --------------------------------- +Example 1: PXE Boot and iSCSI Deploy Process +-------------------------------------------- + +This process is used with pxe_* family of drivers. .. seqdiag:: :scale: 80 @@ -277,8 +292,10 @@ Example 1: PXE Deploy Process (From a `talk`_ and `slides`_) -Example 2: Agent Deploy Process ---------------------------------- +Example 2: PXE Boot and Direct Deploy Process +---------------------------------------------- + +This process is used with agent_* family of drivers. .. seqdiag:: :scale: 80 diff --git a/doc/source/dev/dev-quickstart.rst b/doc/source/dev/dev-quickstart.rst index 5ea560dd93..aaf718f0b3 100644 --- a/doc/source/dev/dev-quickstart.rst +++ b/doc/source/dev/dev-quickstart.rst @@ -351,8 +351,9 @@ Switch to the stack user and clone DevStack:: git clone https://github.com/openstack-dev/devstack.git devstack Create devstack/local.conf with minimal settings required to enable Ironic. -Note that Ironic under devstack can only support running *either* the PXE -or the agent driver, not both. The default is the PXE driver.:: +You can use either of two drivers for deploy: pxe_* or agent_*, see :ref:`IPA` +for explanation. An example local.conf that enables both types of drivers +and uses the ``pxe_ssh`` driver by default:: cd devstack cat >local.conf <>local.conf <`_. + +Drivers +======= + +Starting with the Kilo release all drivers (except for fake ones) are using +IPA for deployment. There are two types of them, which can be distinguished +by prefix: + +* For drivers with ``pxe_`` or ``iscsi_`` prefix IPA exposes the root hard + drive as an iSCSI share and calls back to the ironic conductor. The + conductor mounts the share and copies an image there. It then signals back + to IPA for post-installation actions like setting up a bootloader for local + boot support. + +* For drivers with ``agent_`` prefix the conductor prepares a swift temporary + URL for an image. IPA then handles the whole deployment process: + downloading an image from swift, putting it on the machine and doing any + post-deploy actions. + +Which one to choose depends on your environment. iSCSI-based drivers put +higher load on conductors, agent-based drivers currently require the whole +image to fit in the node's memory. + +.. todo: other differences? + +.. todo: explain configuring swift for temporary URL's + +Requirements +~~~~~~~~~~~~ + +Using IPA requires it to be present and configured on the deploy ramdisk, see +:ref:`BuildingDeployRamdisk` for details. diff --git a/doc/source/index.rst b/doc/source/index.rst index 0d265b78bb..f7627e5a80 100644 --- a/doc/source/index.rst +++ b/doc/source/index.rst @@ -39,6 +39,7 @@ Overview Installation Guide Upgrade Guide Configuration Reference (Liberty) + drivers/ipa deploy/drivers deploy/cleaning