b219699e9d
eg: +------------+--------+--------+ | Interface | Result | Reason | +------------+--------+--------+ | boot | True | | | console | True | | | deploy | True | | | inspect | True | | | management | True | | | network | True | | | power | True | | | raid | True | | | storage | True | | +------------+--------+--------+ Change-Id: I7f93b866cf4b50047e8666c3c5c01a201f18ef4b
174 lines
8.0 KiB
ReStructuredText
174 lines
8.0 KiB
ReStructuredText
|
|
Using Bare Metal service as a standalone service
|
|
================================================
|
|
|
|
It is possible to use the Bare Metal service without other OpenStack services.
|
|
You should make the following changes to ``/etc/ironic/ironic.conf``:
|
|
|
|
#. To disable usage of Identity service tokens::
|
|
|
|
[DEFAULT]
|
|
...
|
|
auth_strategy=noauth
|
|
|
|
#. If you want to disable the Networking service, you should have your network
|
|
pre-configured to serve DHCP and TFTP for machines that you're deploying.
|
|
To disable it, change the following lines::
|
|
|
|
[dhcp]
|
|
...
|
|
dhcp_provider=none
|
|
|
|
.. note::
|
|
If you disabled the Networking service and the driver that you use is
|
|
supported by at most one conductor, PXE boot will still work for your
|
|
nodes without any manual config editing. This is because you know all
|
|
the DHCP options that will be used for deployment and can set up your
|
|
DHCP server appropriately.
|
|
|
|
If you have multiple conductors per driver, it would be better to use
|
|
Networking since it will do all the dynamically changing configurations
|
|
for you.
|
|
|
|
If you don't use Image service, it's possible to provide images to Bare Metal
|
|
service via hrefs.
|
|
|
|
.. note::
|
|
At the moment, only two types of hrefs are acceptable instead of Image
|
|
service UUIDs: HTTP(S) hrefs (for example, "http://my.server.net/images/img")
|
|
and file hrefs (file:///images/img).
|
|
|
|
There are however some limitations for different drivers:
|
|
|
|
* If you're using one of the drivers that use agent deploy method (namely,
|
|
``agent_ilo`` or ``agent_ipmitool``)
|
|
you have to know MD5 checksum for your instance image. To
|
|
compute it, you can use the following command::
|
|
|
|
md5sum image.qcow2
|
|
ed82def8730f394fb85aef8a208635f6 image.qcow2
|
|
|
|
Apart from that, because of the way the agent deploy method works, image
|
|
hrefs can use only HTTP(S) protocol.
|
|
|
|
* If you're using ``iscsi_ilo`` or ``agent_ilo`` driver, Object Storage service
|
|
is required, as these drivers need to store floppy image that is used to pass
|
|
parameters to deployment iso. For this method also only HTTP(S) hrefs are
|
|
acceptable, as HP iLO servers cannot attach other types of hrefs as virtual
|
|
media.
|
|
|
|
* Other drivers use PXE deploy method and there are no special requirements
|
|
in this case.
|
|
|
|
Steps to start a deployment are pretty similar to those when using Compute:
|
|
|
|
#. To use the `openstack baremetal CLI
|
|
<https://docs.openstack.org/python-ironicclient/latest/cli/osc_plugin_cli.html>`_,
|
|
set up these environment variables. Since no authentication strategy is
|
|
being used, the value can be any string for OS_TOKEN. OS_URL is
|
|
the URL of the ironic-api process.
|
|
For example::
|
|
|
|
export OS_TOKEN=fake-token
|
|
export OS_URL=http://localhost:6385/
|
|
|
|
#. Create a node in Bare Metal service. At minimum, you must specify the driver
|
|
name (for example, "pxe_ipmitool"). You can also specify all the required
|
|
driver parameters in one command. This will return the node UUID::
|
|
|
|
openstack node create --driver pxe_ipmitool \
|
|
--driver-info ipmi_address=ipmi.server.net \
|
|
--driver-info ipmi_username=user \
|
|
--driver-info ipmi_password=pass \
|
|
--driver-info deploy_kernel=file:///images/deploy.vmlinuz \
|
|
--driver-info deploy_ramdisk=http://my.server.net/images/deploy.ramdisk
|
|
|
|
+--------------+--------------------------------------------------------------------------+
|
|
| Property | Value |
|
|
+--------------+--------------------------------------------------------------------------+
|
|
| uuid | be94df40-b80a-4f63-b92b-e9368ee8d14c |
|
|
| driver_info | {u'deploy_ramdisk': u'http://my.server.net/images/deploy.ramdisk', |
|
|
| | u'deploy_kernel': u'file:///images/deploy.vmlinuz', u'ipmi_address': |
|
|
| | u'ipmi.server.net', u'ipmi_username': u'user', u'ipmi_password': |
|
|
| | u'******'} |
|
|
| extra | {} |
|
|
| driver | pxe_ipmitool |
|
|
| chassis_uuid | |
|
|
| properties | {} |
|
|
+--------------+--------------------------------------------------------------------------+
|
|
|
|
Note that here deploy_kernel and deploy_ramdisk contain links to
|
|
images instead of Image service UUIDs.
|
|
|
|
#. As in case of Compute service, you can also provide ``capabilities`` to node
|
|
properties, but they will be used only by Bare Metal service (for example,
|
|
boot mode). Although you don't need to add properties like ``memory_mb``,
|
|
``cpus`` etc. as Bare Metal service will require UUID of a node you're
|
|
going to deploy.
|
|
|
|
#. Then create a port to inform Bare Metal service of the network interface
|
|
cards which are part of the node by creating a port with each NIC's MAC
|
|
address. In this case, they're used for naming of PXE configs for a node::
|
|
|
|
openstack baremetal port create $MAC_ADDRESS --node $NODE_UUID
|
|
|
|
#. As there is no Compute service flavor and instance image is not provided with
|
|
nova boot command, you also need to specify some fields in ``instance_info``.
|
|
For PXE deployment, they are ``image_source``, ``kernel``, ``ramdisk``,
|
|
``root_gb``::
|
|
|
|
openstack baremetal node set $NODE_UUID \
|
|
--instance-info image_source=$IMG \
|
|
--instance-info kernel=$KERNEL \
|
|
--instance-info ramdisk=$RAMDISK \
|
|
--instance-info root_gb=10
|
|
|
|
Here $IMG, $KERNEL, $RAMDISK can also be HTTP(S) or file hrefs. For agent
|
|
drivers, you don't need to specify kernel and ramdisk, but MD5 checksum of
|
|
instance image is required::
|
|
|
|
openstack baremetal node set $NODE_UUID --instance-info image_checksum=$MD5HASH
|
|
|
|
#. Validate that all parameters are correct::
|
|
|
|
openstack baremetal node validate $NODE_UUID
|
|
|
|
+------------+--------+----------------------------------------------------------------+
|
|
| Interface | Result | Reason |
|
|
+------------+--------+----------------------------------------------------------------+
|
|
| boot | True | |
|
|
| console | False | Missing 'ipmi_terminal_port' parameter in node's driver_info. |
|
|
| deploy | True | |
|
|
| inspect | True | |
|
|
| management | True | |
|
|
| network | True | |
|
|
| power | True | |
|
|
| raid | True | |
|
|
| storage | True | |
|
|
+------------+--------+----------------------------------------------------------------+
|
|
|
|
#. Now you can start the deployment, run::
|
|
|
|
openstack baremetal node deploy $NODE_UUID
|
|
|
|
For iLO drivers, fields that should be provided are:
|
|
|
|
* ``ilo_deploy_iso`` under ``driver_info``;
|
|
|
|
* ``ilo_boot_iso``, ``image_source``, ``root_gb`` under ``instance_info``.
|
|
|
|
.. note::
|
|
The Bare Metal service tracks content changes for non-Glance images by
|
|
checking their modification date and time. For example, for HTTP image,
|
|
if 'Last-Modified' header value from response to a HEAD request to
|
|
"http://my.server.net/images/deploy.ramdisk" is greater than cached image
|
|
modification time, Ironic will re-download the content. For "file://"
|
|
images, the file system modification time is used.
|
|
|
|
|
|
Other references
|
|
----------------
|
|
|
|
* :ref:`local-boot-without-compute`
|
|
|