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