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 <liliars@lsd.ufcg.edu.br>
Change-Id: Ifeed7bf9128281b79d425f7c5dbb3d8c39e7fb68
This commit is contained in:
Dmitry Tantsur 2015-10-16 15:05:04 +02:00
parent 09550ff1a4
commit 9cfdc3f51d
5 changed files with 104 additions and 47 deletions

View File

@ -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 <https://github.com/openstack/ironic-python-agent/>`_
For more information on this, see :ref:`IPA`.
DRAC
----

View File

@ -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

View File

@ -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 <<END
@ -363,6 +364,8 @@ or the agent driver, not both. The default is the PXE driver.::
RABBIT_PASSWORD=password
SERVICE_PASSWORD=password
SERVICE_TOKEN=password
SWIFT_HASH=password
SWIFT_TEMPURL_KEY=password
# Enable Ironic API and Ironic Conductor
enable_service ironic
@ -379,6 +382,12 @@ or the agent driver, not both. The default is the PXE driver.::
enable_service q-meta
enable_service neutron
# Enable Swift for agent_* drivers
enable_service s-proxy
enable_service s-object
enable_service s-container
enable_service s-account
# Disable Horizon
disable_service horizon
@ -388,10 +397,21 @@ or the agent driver, not both. The default is the PXE driver.::
# Disable Cinder
disable_service cinder c-sch c-api c-vol
# Swift temp URL's are required for agent_* drivers.
SWIFT_ENABLE_TEMPURLS=True
# Create 3 virtual machines to pose as Ironic's baremetal nodes.
IRONIC_VM_COUNT=3
IRONIC_VM_SSH_PORT=22
IRONIC_BAREMETAL_BASIC_OPS=True
IRONIC_DEPLOY_DRIVER_ISCSI_WITH_IPA=True
# Enable Ironic drivers.
IRONIC_ENABLED_DRIVERS=fake,agent_ssh,agent_ipmitool,pxe_ssh,pxe_ipmitool
# Change this to alter the default driver for nodes created by devstack.
# This driver should be in the enabled list above.
IRONIC_DEPLOY_DRIVER=pxe_ssh
# The parameters below represent the minimum possible values to create
# functional nodes.
@ -401,6 +421,9 @@ or the agent driver, not both. The default is the PXE driver.::
# Size of the ephemeral partition in GB. Use 0 for no ephemeral partition.
IRONIC_VM_EPHEMERAL_DISK=0
# To build your own IPA ramdisk from source, set this to True
IRONIC_BUILD_DEPLOY_RAMDISK=False
VIRT_DRIVER=ironic
# By default, DevStack creates a 10.0.0.0/24 network for instances.
@ -417,31 +440,6 @@ or the agent driver, not both. The default is the PXE driver.::
END
If running with the agent driver (instead of PXE driver), add these additional
settings to local.conf::
cat >>local.conf <<END
# Agent driver requires swift with tempurls
# Enable swift services
enable_service s-proxy
enable_service s-object
enable_service s-container
enable_service s-account
# Enable tempurls and set credentials
SWIFT_HASH=password
SWIFT_TEMPURL_KEY=password
SWIFT_ENABLE_TEMPURLS=True
# Enable agent driver
IRONIC_ENABLED_DRIVERS=fake,agent_ssh,agent_ipmitool
IRONIC_DEPLOY_DRIVER=agent_ssh
# To build your own IPA ramdisk from source, set this to True
IRONIC_BUILD_DEPLOY_RAMDISK=False
END
Run stack.sh::
./stack.sh

View File

@ -0,0 +1,49 @@
.. _IPA:
===================
Ironic Python Agent
===================
Overview
========
*Ironic Python Agent* (also often called *IPA* or just *agent*) is a
Python-based agent which handles *ironic* bare metal nodes in a
variety of actions such as inspect, configure, clean and deploy images.
IPA is distributed over nodes and runs, inside of a ramdisk, the
process of booting this ramdisk on the node.
For more information see the `ironic-python-agent documentation
<http://docs.openstack.org/developer/ironic-python-agent/>`_.
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.

View File

@ -39,6 +39,7 @@ Overview
Installation Guide <deploy/install-guide>
Upgrade Guide <deploy/upgrade-guide>
Configuration Reference (Liberty) <http://docs.openstack.org/liberty/config-reference/content/ch_configuring-openstack-bare-metal.html>
drivers/ipa
deploy/drivers
deploy/cleaning