7efbbcc2d9
Using AMQP-based RPC can be an overkill in case of ironic, especially when used standalone. This change allows using a built-in JSON RPC implementation instead. This implementation does not currently support the object indirection API, which does not seem to be used anywhere anyway. The standalone and API test jobs are changed to use JSON RPC. Story: #2004874 Task: #29141 Change-Id: I7cc95935d6bdae43fab5dfbd544c8e6d65fcc38d
130 lines
3.7 KiB
PHP
130 lines
3.7 KiB
PHP
Configuring ironic-api service
|
|
------------------------------
|
|
|
|
#. The Bare Metal service stores information in a database. This guide uses the
|
|
MySQL database that is used by other OpenStack services.
|
|
|
|
Configure the location of the database via the ``connection`` option. In the
|
|
following, 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 used to connect to the
|
|
# database (string value)
|
|
connection=mysql+pymysql://ironic:IRONIC_DBPASSWORD@DB_IP/ironic?charset=utf8
|
|
|
|
#. Configure the ironic-api service to use the RabbitMQ message broker by
|
|
setting the following option. Replace ``RPC_*`` with appropriate
|
|
address details and credentials of RabbitMQ server:
|
|
|
|
.. code-block:: ini
|
|
|
|
[DEFAULT]
|
|
|
|
# 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/
|
|
|
|
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 authentication:
|
|
|
|
.. code-block:: ini
|
|
|
|
[DEFAULT]
|
|
|
|
rpc_transport = json-rpc
|
|
|
|
[json_rpc]
|
|
|
|
# Authentication type to load (string value)
|
|
auth_type = password
|
|
|
|
# Authentication URL (string value)
|
|
auth_url=https://IDENTITY_IP:5000/
|
|
|
|
# Username (string value)
|
|
username=ironic
|
|
|
|
# User's password (string value)
|
|
password=IRONIC_PASSWORD
|
|
|
|
# Project name to scope to (string value)
|
|
project_name=service
|
|
|
|
# Domain ID containing project (string value)
|
|
project_domain_id=default
|
|
|
|
# User's domain id (string value)
|
|
user_domain_id=default
|
|
|
|
If you use port other than the default 8089 for JSON RPC, you have to
|
|
configure it, for example:
|
|
|
|
.. code-block:: ini
|
|
|
|
[json_rpc]
|
|
port = 9999
|
|
|
|
#. Configure the ironic-api service to use these credentials with the Identity
|
|
service. Replace ``PUBLIC_IDENTITY_IP`` with the public IP of the Identity
|
|
server, ``PRIVATE_IDENTITY_IP`` with the private IP of the Identity server
|
|
and replace ``IRONIC_PASSWORD`` with the password you chose for the
|
|
``ironic`` user in the Identity service:
|
|
|
|
.. code-block:: ini
|
|
|
|
[DEFAULT]
|
|
|
|
# Authentication strategy used by ironic-api: one of
|
|
# "keystone" or "noauth". "noauth" should not be used in a
|
|
# production environment because all authentication will be
|
|
# disabled. (string value)
|
|
auth_strategy=keystone
|
|
|
|
[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
|
|
|
|
#. Create the Bare Metal service database tables:
|
|
|
|
.. code-block:: bash
|
|
|
|
$ ironic-dbsync --config-file /etc/ironic/ironic.conf create_schema
|
|
|
|
#. Restart the ironic-api service:
|
|
|
|
Fedora/RHEL7/CentOS7/SUSE::
|
|
|
|
sudo systemctl restart openstack-ironic-api
|
|
|
|
Ubuntu::
|
|
|
|
sudo service ironic-api restart
|