2016-09-07 08:39:28 -04:00
|
|
|
Configuring ironic-conductor service
|
|
|
|
------------------------------------
|
|
|
|
|
2017-05-03 15:31:34 +02:00
|
|
|
#. Replace ``HOST_IP`` with IP of the conductor host.
|
2016-09-07 08:39:28 -04:00
|
|
|
|
|
|
|
.. code-block:: ini
|
|
|
|
|
|
|
|
[DEFAULT]
|
|
|
|
|
|
|
|
# IP address of this host. If unset, will determine the IP
|
|
|
|
# programmatically. If unable to do so, will use "127.0.0.1".
|
|
|
|
# (string value)
|
|
|
|
my_ip=HOST_IP
|
|
|
|
|
|
|
|
.. note::
|
|
|
|
If a conductor host has multiple IPs, ``my_ip`` should
|
|
|
|
be set to the IP which is on the same network as the bare metal nodes.
|
|
|
|
|
|
|
|
#. Configure the location of the database. Ironic-conductor should use the same
|
|
|
|
configuration as ironic-api. Replace ``IRONIC_DBPASSWORD`` with the password
|
|
|
|
of your ``ironic`` user, and replace DB_IP with the IP address where the DB
|
|
|
|
server is located:
|
|
|
|
|
|
|
|
.. code-block:: ini
|
|
|
|
|
|
|
|
[database]
|
|
|
|
|
|
|
|
# The SQLAlchemy connection string to use to connect to the
|
|
|
|
# database. (string value)
|
|
|
|
connection=mysql+pymysql://ironic:IRONIC_DBPASSWORD@DB_IP/ironic?charset=utf8
|
|
|
|
|
|
|
|
#. Configure the ironic-conductor service to use the RabbitMQ message broker by
|
2016-11-08 13:59:18 +02:00
|
|
|
setting the following option. Ironic-conductor should use the same
|
|
|
|
configuration as ironic-api. Replace ``RPC_*`` with appropriate
|
|
|
|
address details and credentials of RabbitMQ server:
|
2016-09-07 08:39:28 -04:00
|
|
|
|
|
|
|
.. code-block:: ini
|
|
|
|
|
|
|
|
[DEFAULT]
|
|
|
|
|
2016-11-08 13:59:18 +02:00
|
|
|
# A URL representing the messaging driver to use and its full
|
|
|
|
# configuration. (string value)
|
|
|
|
transport_url = rabbit://RPC_USER:RPC_PASSWORD@RPC_HOST:RPC_PORT/
|
2016-09-07 08:39:28 -04:00
|
|
|
|
2019-01-24 13:22:34 +01:00
|
|
|
Alternatively, you can use JSON RPC for interactions between
|
|
|
|
ironic-conductor and ironic-api. Enable it in the configuration and provide
|
|
|
|
the keystone credentials to use for authenticating incoming requests (can
|
|
|
|
be the same as for the API):
|
|
|
|
|
|
|
|
.. code-block:: ini
|
|
|
|
|
|
|
|
[DEFAULT]
|
|
|
|
|
|
|
|
rpc_transport = json-rpc
|
|
|
|
|
|
|
|
[keystone_authtoken]
|
|
|
|
|
|
|
|
# Authentication type to load (string value)
|
|
|
|
auth_type=password
|
|
|
|
|
|
|
|
# Complete public Identity API endpoint (string value)
|
|
|
|
www_authenticate_uri=http://PUBLIC_IDENTITY_IP:5000
|
|
|
|
|
|
|
|
# Complete admin Identity API endpoint. (string value)
|
|
|
|
auth_url=http://PRIVATE_IDENTITY_IP:5000
|
|
|
|
|
|
|
|
# Service username. (string value)
|
|
|
|
username=ironic
|
|
|
|
|
|
|
|
# Service account password. (string value)
|
|
|
|
password=IRONIC_PASSWORD
|
|
|
|
|
|
|
|
# Service tenant name. (string value)
|
|
|
|
project_name=service
|
|
|
|
|
|
|
|
# Domain name containing project (string value)
|
|
|
|
project_domain_name=Default
|
|
|
|
|
|
|
|
# User's domain name (string value)
|
|
|
|
user_domain_name=Default
|
|
|
|
|
|
|
|
You can optionally change the host and the port the JSON RPC service will
|
|
|
|
bind to, for example:
|
|
|
|
|
|
|
|
.. code-block:: ini
|
|
|
|
|
|
|
|
[json_rpc]
|
|
|
|
host_ip = 192.168.0.10
|
|
|
|
port = 9999
|
|
|
|
|
|
|
|
.. warning::
|
|
|
|
Hostnames of ironic-conductor machines must be resolvable by ironic-api
|
|
|
|
services when JSON RPC is used.
|
|
|
|
|
2016-10-05 14:49:13 +03:00
|
|
|
#. Configure credentials for accessing other OpenStack services.
|
|
|
|
|
|
|
|
In order to communicate with other OpenStack services, the Bare Metal
|
|
|
|
service needs to use service users to authenticate to the OpenStack
|
|
|
|
Identity service when making requests to other services.
|
|
|
|
These users' credentials have to be configured in each
|
|
|
|
configuration file section related to the corresponding service:
|
|
|
|
|
|
|
|
* ``[neutron]`` - to access the OpenStack Networking service
|
|
|
|
* ``[glance]`` - to access the OpenStack Image service
|
|
|
|
* ``[swift]`` - to access the OpenStack Object Storage service
|
2018-10-09 14:18:15 +07:00
|
|
|
* ``[cinder]`` - to access the OpenStack Block Storage service
|
2016-10-05 14:49:13 +03:00
|
|
|
* ``[inspector]`` - to access the OpenStack Bare Metal Introspection
|
|
|
|
service
|
|
|
|
* ``[service_catalog]`` - a special section holding credentials
|
|
|
|
the Bare Metal service will use to discover its own API URL endpoint
|
|
|
|
as registered in the OpenStack Identity service catalog.
|
|
|
|
|
|
|
|
For simplicity, you can use the same service user for all services.
|
|
|
|
For backward compatibility, this should be the same user configured
|
|
|
|
in the ``[keystone_authtoken]`` section for the ironic-api service
|
|
|
|
(see "Configuring ironic-api service").
|
|
|
|
However, this is not necessary, and you can create and configure separate
|
|
|
|
service users for each service.
|
|
|
|
|
|
|
|
Under the hood, Bare Metal service uses ``keystoneauth`` library
|
2017-06-29 09:04:03 +00:00
|
|
|
together with ``Authentication plugin``, ``Session`` and ``Adapter``
|
|
|
|
concepts provided by it to instantiate service clients.
|
2016-10-05 14:49:13 +03:00
|
|
|
Please refer to `Keystoneauth documentation`_ for supported plugins,
|
2017-06-29 09:04:03 +00:00
|
|
|
their available options as well as Session- and Adapter-related options
|
|
|
|
for authentication, connection and endpoint discovery respectively.
|
2016-10-05 14:49:13 +03:00
|
|
|
|
|
|
|
In the example below, authentication information for user to access the
|
|
|
|
OpenStack Networking service is configured to use:
|
|
|
|
|
2017-06-29 09:04:03 +00:00
|
|
|
* Networking service is deployed in the Identity service region named
|
|
|
|
``RegionTwo``, with only its ``public`` endpoint interface registered
|
|
|
|
in the service catalog.
|
2016-10-05 14:49:13 +03:00
|
|
|
* HTTPS connection with specific CA SSL certificate when making requests
|
|
|
|
* the same service user as configured for ironic-api service
|
|
|
|
* dynamic ``password`` authentication plugin that will discover
|
|
|
|
appropriate version of Identity service API based on other
|
|
|
|
provided options
|
|
|
|
|
|
|
|
- replace ``IDENTITY_IP`` with the IP of the Identity server,
|
|
|
|
and replace ``IRONIC_PASSWORD`` with the password you chose for the
|
|
|
|
``ironic`` user in the Identity service
|
|
|
|
|
2016-09-07 08:39:28 -04:00
|
|
|
|
|
|
|
.. code-block:: ini
|
|
|
|
|
2016-10-05 14:49:13 +03:00
|
|
|
[neutron]
|
|
|
|
|
|
|
|
# Authentication type to load (string value)
|
|
|
|
auth_type = password
|
2016-09-07 08:39:28 -04:00
|
|
|
|
2016-10-05 14:49:13 +03:00
|
|
|
# Authentication URL (string value)
|
|
|
|
auth_url=https://IDENTITY_IP:5000/
|
2016-09-07 08:39:28 -04:00
|
|
|
|
2016-10-05 14:49:13 +03:00
|
|
|
# Username (string value)
|
|
|
|
username=ironic
|
2016-09-07 08:39:28 -04:00
|
|
|
|
2016-10-05 14:49:13 +03:00
|
|
|
# User's password (string value)
|
|
|
|
password=IRONIC_PASSWORD
|
2016-09-07 08:39:28 -04:00
|
|
|
|
2016-10-05 14:49:13 +03:00
|
|
|
# Project name to scope to (string value)
|
|
|
|
project_name=service
|
2016-09-07 08:39:28 -04:00
|
|
|
|
2016-10-05 14:49:13 +03:00
|
|
|
# Domain ID containing project (string value)
|
|
|
|
project_domain_id=default
|
|
|
|
|
|
|
|
# User's domain id (string value)
|
|
|
|
user_domain_id=default
|
|
|
|
|
|
|
|
# PEM encoded Certificate Authority to use when verifying
|
|
|
|
# HTTPs connections. (string value)
|
|
|
|
cafile=/opt/stack/data/ca-bundle.pem
|
2016-09-07 08:39:28 -04:00
|
|
|
|
2017-06-29 09:04:03 +00:00
|
|
|
# The default region_name for endpoint URL discovery. (string
|
|
|
|
# value)
|
|
|
|
region_name = RegionTwo
|
2017-11-06 14:00:57 +00:00
|
|
|
|
2017-06-29 09:04:03 +00:00
|
|
|
# List of interfaces, in order of preference, for endpoint
|
|
|
|
# URL. (list value)
|
|
|
|
valid_interfaces=public
|
2017-11-06 14:00:57 +00:00
|
|
|
|
|
|
|
|
2017-06-29 09:04:03 +00:00
|
|
|
By default, in order to communicate with another service, the Bare
|
|
|
|
Metal service will attempt to discover an appropriate endpoint for
|
|
|
|
that service via the Identity service's service catalog.
|
|
|
|
The relevant configuration options from that service group in the Bare
|
|
|
|
Metal service configuration file are used for this purpose.
|
|
|
|
If you want to use a different endpoint for a particular service,
|
|
|
|
specify this via the ``endpoint_override`` configuration option of
|
|
|
|
that service group, in the Bare Metal service's configuration file.
|
|
|
|
Taking the previous Networking service example, this would be
|
2017-11-06 14:00:57 +00:00
|
|
|
|
|
|
|
.. code-block:: ini
|
|
|
|
|
|
|
|
[neutron]
|
2017-06-29 09:04:03 +00:00
|
|
|
...
|
|
|
|
endpoint_override = <NEUTRON_API_ADDRESS>
|
2017-11-06 14:00:57 +00:00
|
|
|
|
2017-06-29 09:04:03 +00:00
|
|
|
(Replace `<NEUTRON_API_ADDRESS>` with actual address of a specific
|
|
|
|
Networking service endpoint.)
|
2017-11-06 14:00:57 +00:00
|
|
|
|
2017-05-03 15:31:34 +02:00
|
|
|
#. Configure enabled drivers and hardware types as described in
|
2017-07-03 16:24:24 +01:00
|
|
|
:doc:`/install/enabling-drivers`.
|
2016-09-07 08:39:28 -04:00
|
|
|
|
2017-06-29 09:04:03 +00:00
|
|
|
A. If you enabled any driver that uses :ref:`direct-deploy`,
|
|
|
|
Swift backend for the Image service must be installed and configured,
|
|
|
|
see :ref:`image-store`.
|
|
|
|
Ceph Object Gateway (RADOS Gateway) is also supported as the Image
|
|
|
|
service's backend, see :ref:`radosgw support`.
|
|
|
|
|
|
|
|
#. Configure the network for ironic-conductor service to perform node
|
|
|
|
cleaning, see :ref:`cleaning` from the admin guide.
|
|
|
|
|
2016-09-07 08:39:28 -04:00
|
|
|
#. Restart the ironic-conductor service:
|
|
|
|
|
2018-08-09 13:51:00 +08:00
|
|
|
Fedora/RHEL7/CentOS7/SUSE::
|
2016-09-07 08:39:28 -04:00
|
|
|
|
2018-08-09 13:51:00 +08:00
|
|
|
sudo systemctl restart openstack-ironic-conductor
|
2016-09-07 08:39:28 -04:00
|
|
|
|
2018-08-09 13:51:00 +08:00
|
|
|
Ubuntu::
|
|
|
|
|
|
|
|
sudo service ironic-conductor restart
|
2016-10-05 14:49:13 +03:00
|
|
|
|
2017-08-15 09:43:19 +03:00
|
|
|
.. _Keystoneauth documentation: https://docs.openstack.org/keystoneauth/latest/
|