From 3b255534f5f2fc88ec4492ae4069dc016cb5ec42 Mon Sep 17 00:00:00 2001 From: Lilia Sampaio Date: Tue, 13 Oct 2015 19:15:16 +0000 Subject: [PATCH] Add OneView driver documentation This patch adds the documentation for the OneView driver. Implements: blueprint new-ironic-driver-for-oneview Change-Id: Ibc48ab451e76001abccd5459ce9995f90d3be5df --- doc/source/deploy/drivers.rst | 9 ++ doc/source/drivers/oneview.rst | 225 +++++++++++++++++++++++++++++++++ 2 files changed, 234 insertions(+) create mode 100644 doc/source/drivers/oneview.rst diff --git a/doc/source/deploy/drivers.rst b/doc/source/deploy/drivers.rst index ef78f3221d..c3a9147ff5 100644 --- a/doc/source/deploy/drivers.rst +++ b/doc/source/deploy/drivers.rst @@ -114,3 +114,12 @@ CIMC driver :maxdepth: 1 ../drivers/cimc + + +OneView driver +-------------- + +.. toctree:: + :maxdepth: 1 + + ../drivers/oneview diff --git a/doc/source/drivers/oneview.rst b/doc/source/drivers/oneview.rst new file mode 100644 index 0000000000..0f6f8628a8 --- /dev/null +++ b/doc/source/drivers/oneview.rst @@ -0,0 +1,225 @@ +.. _oneview: + +=============== +OneView drivers +=============== + +Overview +======== + +HP OneView [1]_ is a single integrated platform, packaged as an appliance that +implements a software-defined approach to managing physical infrastructure. +The appliance supports scenarios such as deploying bare metal servers, for +instance. In this context, the ``HP OneView driver`` for Ironic enables the +users of OneView to use Ironic as a bare metal provider to their managed +physical hardware. + +Currently there are two OneView drivers: + +* ``iscsi_pxe_oneview`` +* ``agent_pxe_oneview`` + +The ``iscsi_pxe_oneview`` and ``agent_pxe_oneview`` drivers implement the +core interfaces of an Ironic Driver [2]_, and use the ``python-oneviewclient`` +[3]_ to provide communication between Ironic and OneView through OneView's +Rest API. + +To provide a bare metal instance there are four components involved in the +process: + +* Ironic service +* python-oneviewclient +* OneView appliance +* iscsi_pxe_oneview/agent_pxe_oneview driver + +The role of Ironic is to serve as a bare metal provider to OneView's managed +physical hardware and to provide communication with other necessary OpenStack +services such as Nova and Glance. When Ironic receives a boot request, it +works together with the Ironic OneView driver to access a machine in OneView, +the ``python-oneviewclient`` being responsible for the communication with the +OneView appliance. + +Prerequisites +============= + +The following requirements apply for both ``iscsi_pxe_oneview`` and +``agent_pxe_oneview`` drivers: + +* ``OneView appliance`` is the HP physical infrastructure manager to be + integrated with the OneView drivers. + + Minimum version supported is 2.0. + +* ``python-oneviewclient`` is a python package containing a client to manage + the communication between Ironic and OneView. + + Install the ``python-oneviewclient`` module to enable the communication. + Minimum version required is 2.0.1.:: + + $ pip install "python-oneviewclient>=2.0.1" + +Tested platforms +================ + +* The OneView appliance used for testing was the OneView 2.0. + +* The Enclosure used for testing was the ``BladeSystem c7000 Enclosure G2``. + +* The drivers should work on HP Proliant Gen8 Servers supported by + OneView 2.0 and above. It has been tested with the following servers: + + - Proliant BL460c Gen8 + - Proliant BL465c Gen8 + +Drivers +======= + +iscsi_pxe_oneview driver +^^^^^^^^^^^^^^^^^^^^^^^^ + +Overview +~~~~~~~~ + +``iscsi_pxe_oneview`` driver uses PXEBoot for boot and ISCSIDeploy for deploy. + +Configuring and enabling the driver +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +1. Add ``iscsi_pxe_oneview`` to the list of ``enabled_drivers`` in + ``/etc/ironic/ironic.conf``. For example:: + + enabled_drivers = iscsi_pxe_oneview + +2. Update the [oneview] section of your ``ironic.conf`` file with your + OneView credentials and CA certificate files information. + +3. Restart the Ironic conductor service. For Ubuntu users, do:: + + $ sudo service ironic-conductor restart + +See [5]_ for more information. + +Deploy process +~~~~~~~~~~~~~~ + +Here is an overview of the deploy process for this driver: + +1. Admin configures the Proliant baremetal node to use ``iscsi_pxe_oneview`` + driver. +2. Ironic gets a request to deploy a Glance image on the baremetal node. +3. Driver sets the boot device to PXE. +4. Driver powers on the baremetal node. +5. Ironic downloads the deploy and user images from a TFTP server. +6. Driver reboots the baremetal node. +7. User image is now deployed. +8. Driver powers off the machine. +9. Driver sets boot device to Disk. +10. Driver powers on the machine. +11. Baremetal node is active and ready to be used. + +agent_pxe_oneview driver +^^^^^^^^^^^^^^^^^^^^^^^^ + +Overview +~~~~~~~~ + +``agent_pxe_oneview`` driver uses PXEBoot for boot and AgentDeploy for deploy. + +Configuring and enabling the driver +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +1. Add ``agent_pxe_oneview`` to the list of ``enabled_drivers`` in + ``/etc/ironic/ironic.conf``. For example:: + + enabled_drivers = fake,pxe_ssh,pxe_ipmitool,agent_pxe_oneview + +2. Update the [oneview] section of your ``ironic.conf`` file with your + OneView credentials and CA certificate files information. + +3. Restart the Ironic conductor service. For Ubuntu users, do:: + + $ service ironic-conductor restart + +See [5]_ for more information. + +Deploy process +~~~~~~~~~~~~~~ + +Here is an overview of the deploy process for this driver: + +1. Admin configures the Proliant baremetal node to use ``agent_pxe_oneview`` + driver. +2. Ironic gets a request to deploy a Glance image on the baremetal node. +3. Driver sets the boot device to PXE. +4. Driver powers on the baremetal node. +5. Node downloads the agent deploy images. +6. Agent downloads the user images and writes it to disk. +7. Driver reboots the baremetal node. +8. User image is now deployed. +9. Driver powers off the machine. +10. Driver sets boot device to Disk. +11. Driver powers on the machine. +12. Baremetal node is active and ready to be used. + +Registering a OneView node in Ironic +===================================== + +Nodes configured to use any of the OneView drivers should have the ``driver`` +property set to ``iscsi_pxe_oneview`` or ``agent_pxe_oneview``. Considering +our context, a node is the representation of a ``Server Hardware`` in OneView, +and should be consistent with all its properties and related components, such +as ``Server Hardware Type``, ``Server Profile Template``, ``Enclosure Group``, +etc. In this case, to be enrolled, the node must have the following parameters: + +* In ``driver_info`` + + - ``server_hardware_uri``: URI of the Server Hardware on OneView. + - ``server_profile_template_uri``: URI of the Server Profile Template used + to create the Server Profile of the Server Hardware. + +* In ``properties/capabilities`` + + - ``server_hardware_type_uri``: URI of the Server Hardware Type of the + Server Hardware. + - ``enclosure_group_uri`` (optional): URI of the Enclosure Group of the + Server Hardware. + +To enroll a node with any of the OneView drivers, do:: + + $ ironic node-create -d $DRIVER_NAME + +To update the ``driver_info`` field of a newly enrolled OneView node, do:: + + $ ironic node-update $NODE_UUID add \ + driver_info/server_hardware_uri=$SH_URI \ + driver_info/server_profile_template_uri=$SPT_URI + +To update the ``properties/capabilities`` namespace of a newly enrolled +OneView node, do:: + + $ ironic node-update $NODE_UUID add \ + properties/capabilities=server_hardware_type_uri:$SHT_URI,enclosure_group_uri:$EG_URI + +In order to deploy, a Server Profile consistent with the Server Profile +Template of the node MUST be applied to the Server Hardware it represents. +Server Profiles to be utilized for deployments MUST have configuration such +that its **first Network Interface** ``boot`` property is set to "Primary" +and connected to Ironic's provisioning network. + +To tell Ironic which NIC should be connected to the provisioning network, do:: + + $ ironic port-create -n $NODE_UUID -a $MAC_ADDRESS + +For more information on the enrollment process of an Ironic node, see [4]_. + +For more information on the definitions of ``Server Hardware``, +``Server Profile``, ``Server Profile Template`` and many other OneView +entities, see [1]_ or browse Help in your OneView appliance menu. + +References +========== +.. [1] HP OneView - http://www8.hp.com/us/en/business-solutions/converged-systems/oneview.html +.. [2] Driver interfaces - http://docs.openstack.org/developer/ironic/dev/architecture.html#drivers +.. [3] python-oneviewclient - https://pypi.python.org/pypi/python-oneviewclient +.. [4] Enrollment process of a node - http://docs.openstack.org/developer/ironic/deploy/install-guide.html#enrollment-process +.. [5] Ironic install guide - http://docs.openstack.org/developer/ironic/deploy/install-guide.html#installation-guide