267e61bbc7
Change-Id: I5d182814b07a2d50345ee365c56a0f00724f6e47
73 lines
2.6 KiB
HTML
73 lines
2.6 KiB
HTML
Install and configure prerequisites
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
The Bare Metal service is a collection of components that provides support to
|
|
manage and provision physical machines. You can configure these components to
|
|
run on separate nodes or the same node. In this guide, the components run on
|
|
one node, typically the Compute Service's compute node.
|
|
|
|
It assumes that the Identity, Image, Compute, and Networking services
|
|
have already been set up.
|
|
|
|
|
|
Set up the database for Bare Metal
|
|
----------------------------------
|
|
|
|
The Bare Metal service stores information in a database. This guide uses the
|
|
MySQL database that is used by other OpenStack services.
|
|
|
|
In MySQL, create an ``ironic`` database that is accessible by the
|
|
``ironic`` user. Replace ``IRONIC_DBPASSWORD`` with a suitable password:
|
|
|
|
.. code-block:: console
|
|
|
|
# mysql -u root -p
|
|
mysql> CREATE DATABASE ironic CHARACTER SET utf8mb3;
|
|
mysql> GRANT ALL PRIVILEGES ON ironic.* TO 'ironic'@'localhost' \
|
|
IDENTIFIED BY 'IRONIC_DBPASSWORD';
|
|
mysql> GRANT ALL PRIVILEGES ON ironic.* TO 'ironic'@'%' \
|
|
IDENTIFIED BY 'IRONIC_DBPASSWORD';
|
|
|
|
.. note::
|
|
When creating the database to house Ironic, specifically on MySQL/MariaDB,
|
|
the character set *cannot* be 4 byte Unicode characters. This is due to
|
|
an internal structural constraint. UTF8, in these database platforms,
|
|
has traditionally meant ``utf8mb3``, short for "UTF-8, 3 byte encoding",
|
|
however the platforms are expected to move to ``utf8mb4`` which is
|
|
incompatible with Ironic.
|
|
|
|
Running on SQLite
|
|
^^^^^^^^^^^^^^^^^
|
|
|
|
It is possible to run the Bare Metal service with SQLite_ as the database
|
|
backend. However, take into account the following limitations:
|
|
|
|
* You have to run Ironic in the all-in-one mode (see `configuring
|
|
single-process ironic`_). You cannot have multiple conductors this way.
|
|
|
|
* You should use `WAL mode`_ for the database. Ironic will try to enable
|
|
it for you, but it can only be done for a fresh database.
|
|
|
|
* Even in the WAL mode, SQLite has limited write concurrency. If you
|
|
experience "database is locked" errors, try reducing the frequency
|
|
of periodic tasks. If that still does not help, you may need to use
|
|
a server-based database.
|
|
|
|
* Not all database migrations are supported on SQLite. You may need
|
|
to re-create the database on upgrades.
|
|
|
|
To use SQLite, configure your connection like this:
|
|
|
|
.. code-block:: ini
|
|
|
|
[database]
|
|
connection = sqlite:////full/path/to/ironic.sqlite
|
|
|
|
.. note::
|
|
This is not a typo! A full path requires 4 slashes.
|
|
|
|
If in doubt, use MySQL/MariaDB instead.
|
|
|
|
.. _sqlite: https://www.sqlite.org
|
|
.. _WAL mode: https://www.sqlite.org/wal.html
|