770
810
checked by just pinging the IPMI controller IP from the conductor
814
If there are slow or unresponsive BMCs in the environment, the retry_timeout
815
configuration option in the [ipmi] section may need to be lowered. The
816
default is fairly conservative, as setting this timeout too low can cause
817
older BMCs to crash and require a hard-reset.
773
819
Ironic supports sending IPMI sensor data to Ceilometer with pxe_ipmitool,
774
pxe_ipminative, agent_ipmitool, agent_pyghmi, agent_ilo, iscsi_ilo and pxe_ilo
775
drivers. By default, support for sending IPMI sensor data to Ceilometer is
776
disabled. If you want to enable it set the following options in the
777
``conductor`` section of ``ironic.conf``:
820
pxe_ipminative, agent_ipmitool, agent_pyghmi, agent_ilo, iscsi_ilo, pxe_ilo,
821
and with pxe_irmc driver starting from Kilo release. By default, support for
822
sending IPMI sensor data to Ceilometer is disabled. If you want to enable it,
823
you should make the following two changes in ``ironic.conf``:
779
* notification_driver=messaging
780
* send_sensor_data=true
825
* ``notification_driver = messaging`` in the ``DEFAULT`` section
826
* ``send_sensor_data = true`` in the ``conductor`` section
782
828
If you want to customize the sensor types which will be sent to Ceilometer,
783
829
change the ``send_sensor_data_types`` option. For example, the below settings
964
1010
.. _ComputeCapabilitiesFilter: http://docs.openstack.org/developer/nova/devref/filter_scheduler.html?highlight=computecapabilitiesfilter
1016
Starting with Kilo release Ironic supports hardware inspection that simplifies
1017
enrolling nodes. Inspection allows Ironic to discover required node properties
1018
once required ``driver_info`` fields (e.g. IPMI credentials) are set
1019
by an operator. There are two kinds of inspection supported by Ironic:
1021
#. Out-of-band inspection may be supported by some vendor drivers.
1023
#. In-band inspection is performed by utilizing the ironic-discoverd_ project.
1024
This is supported by the following drivers::
1031
As of Kilo release this feature needs to be explicitly enabled in the
1032
configuration by setting ``enabled = True`` in ``[discoverd]`` section.
1033
You must additionally install ``ironic-discoverd`` to use this functionality.
1034
You must set ``service_url`` if the ironic-discoverd service is
1035
being run on a separate host from the ironic-conductor service, or is using
1038
.. _ironic-discoverd: https://github.com/stackforge/ironic-discoverd
1040
Using Ironic as a standalone service
1041
====================================
1043
It's possible to use Ironic without other OpenStack services.
1045
You should make the following changes to ``/etc/ironic/ironic.conf``:
1047
#. To disable usage of Keystone tokens::
1053
#. If you want to disable Neutron, you should have your network pre-configured
1054
to serve DHCP and TFTP for machines that you're deploying. To disable it,
1055
change the following lines::
1062
If you disabled Neutron and driver that you use is supported by at most
1063
one conductor, PXE boot will still work for your nodes without any
1064
manual config editing. This is because you know all the DHCP options
1065
that will be used for deployment and can set up your DHCP server
1068
If you have multiple conductors per driver, it would be better to use
1069
Neutron since it will do all the dynamically changing configurations for
1072
If you don't use Glance, it's possible to provide images to Ironic via hrefs.
1075
At the moment, only two types of hrefs are acceptable instead of Glance
1076
UUIDs: HTTP(S) hrefs (e.g. "http://my.server.net/images/img") and
1077
file hrefs (file:///images/img).
1079
There are however some limitations for different drivers:
1081
* If you're using one of the drivers that use agent deploy method (namely,
1082
``agent_ilo``, ``agent_ipmitool``, ``agent_pyghmi``, ``agent_ssh`` or
1083
``agent_vbox``) you have to know MD5 checksum for your instance image. To
1084
compute it, you can use the follwoing command::
1087
ed82def8730f394fb85aef8a208635f6 image.qcow2
1089
Apart from that, because of the way the agent deploy method works, image
1090
hrefs can use only HTTP(S) protocol.
1092
* If you're using ``iscsi_ilo`` or ``agent_ilo`` driver, Swift service is
1093
required, as these drivers need to store floppy image that is used to pass
1094
parameters to deployment iso. For this method also only HTTP(S) hrefs are
1095
acceptable, as HP iLO servers cannot attach other types of hrefs as virtual
1098
* Other drivers use PXE deploy method and there are no special requirements
1101
Steps to start a deployment are pretty similar to those when using Nova:
1103
#. Create a Node in Ironic. At minimum, you must specify the driver name (eg,
1104
"pxe_ipmitool"). You can also specify all the required driver parameters in
1105
one command. This will return the node UUID::
1107
ironic node-create -d pxe_ipmitool -i ipmi_address=ipmi.server.net \
1108
-i ipmi_username=user -i ipmi_password=pass \
1109
-i pxe_deploy_kernel=file:///images/deploy.vmlinuz \
1110
-i pxe_deploy_ramdisk=http://my.server.net/images/deploy.ramdisk
1112
+--------------+--------------------------------------------------------------------------+
1113
| Property | Value |
1114
+--------------+--------------------------------------------------------------------------+
1115
| uuid | be94df40-b80a-4f63-b92b-e9368ee8d14c |
1116
| driver_info | {u'pxe_deploy_ramdisk': u'http://my.server.net/images/deploy.ramdisk', |
1117
| | u'pxe_deploy_kernel': u'file:///images/deploy.vmlinuz', u'ipmi_address': |
1118
| | u'ipmi.server.net', u'ipmi_username': u'user', u'ipmi_password': |
1121
| driver | pxe_ipmitool |
1124
+--------------+--------------------------------------------------------------------------+
1126
Note that here pxe_deploy_kernel and pxe_deploy_ramdisk contain links to
1127
images instead of Glance UUIDs.
1129
#. As in case of Nova, you can also provide ``capabilities`` to node
1130
properties, but they will be used only by Ironic (e.g. boot mode). Although
1131
you don't need to add properties like ``memory_mb``, ``cpus`` etc. as Ironic
1132
will require UUID of a node you're going to deploy.
1134
#. Then create a port to inform Ironic of the Network Interface Cards which
1135
are part of the Node by creating a Port with each NIC's MAC address. In this
1136
case, they're used for naming of PXE configs for a node::
1138
ironic port-create -n $NODE_UUID -a $MAC_ADDRESS
1140
#. As there is no Nova flavor and instance image is not provided with nova
1141
boot command, you also need to specify some fields in ``instance_info``.
1142
For PXE deployment, they are ``image_source``, ``kernel``, ``ramdisk``,
1145
ironic node-update $NODE_UUID add instance_info/image_source=$IMG \
1146
instance_info/kernel=$KERNEL instance_info/ramdisk=$RAMDISK \
1147
instance_info/root_gb=10
1149
Here $IMG, $KERNEL, $RAMDISK can also be HTTP(S) or file hrefs. For agent
1150
drivers, you don't need to specify kernel and ramdisk, but MD5 checksum of
1151
instance image is required::
1153
ironic node-update $NODE_UUID add instance_info/image_checksum=$MD5HASH
1155
#. Validate that all parameters are correct::
1157
ironic node-validate $NODE_UUID
1159
+------------+--------+----------------------------------------------------------------+
1160
| Interface | Result | Reason |
1161
+------------+--------+----------------------------------------------------------------+
1162
| console | False | Missing 'ipmi_terminal_port' parameter in node's driver_info. |
1164
| management | True | |
1166
+------------+--------+----------------------------------------------------------------+
1168
#. Now you can start the deployment, just run::
1170
ironic node-set-provision-state $NODE_UUID active
1172
You can manage provisioning by issuing this command. Valid provision states
1173
are ``active``, ``rebuild`` and ``deleted``.
1175
For iLO drivers, fields that should be provided are:
1177
* ``ilo_deploy_iso`` under ``driver_info``;
1179
* ``ilo_boot_iso``, ``image_source``, ``root_gb`` under ``instance_info``.
1182
There is one limitation in this method - Ironic is not tracking changes of
1183
content under hrefs that are specified. I.e., if the content under
1184
"http://my.server.net/images/deploy.ramdisk" changes, Ironic does not know
1185
about that and does not redownload the content.