Merge "Refactor install-guide to configure API/Conductor seperately"

This commit is contained in:
Jenkins 2016-02-08 16:18:49 +00:00 committed by Gerrit Code Review
commit 4d77414f05
1 changed files with 166 additions and 80 deletions

View File

@ -163,6 +163,14 @@ Although some configuration options are mentioned here, it is recommended that
you review all the `available options <https://git.openstack.org/cgit/openstack/ironic/tree/etc/ironic/ironic.conf.sample>`_
so that the Bare Metal service is configured for your needs.
It is possible to set up an ironic-api and an ironic-conductor services on the
same host or different hosts. Users also can add new ironic-conductor hosts
to deal with an increasing number of bare metal nodes. But the additional ironic-conductor
services should be at the same version as that of existing ironic-conductor services.
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.
@ -172,15 +180,19 @@ so that the Bare Metal service is configured for your needs.
[database]
...
# The SQLAlchemy connection string used to connect to the
# database (string value)
#connection=<None>
connection = mysql+pymysql://ironic:IRONIC_DBPASSWORD@DB_IP/ironic?charset=utf8
#. Configure the Bare Metal service to use the RabbitMQ message broker by
#. Configure the ironic-api service to use the RabbitMQ message broker by
setting one or more of these options. Replace RABBIT_HOST with the
address of the RabbitMQ server.::
address of the RabbitMQ server::
[DEFAULT]
...
# The messaging driver to use, defaults to rabbit. Other
# drivers include qpid and zmq. (string value)
#rpc_backend=rabbit
[oslo_messaging_rabbit]
...
@ -194,109 +206,183 @@ so that the Bare Metal service is configured for your needs.
# The RabbitMQ password (string value)
#rabbit_password=guest
# The RabbitMQ virtual host (string value)
#rabbit_virtual_host=/
#. Configure the Bare Metal service to use these credentials with the Identity
#. Configure the ironic-api service to use these credentials with the Identity
service. 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::
[DEFAULT]
...
# Method to use for authentication: noauth or keystone.
# (string value)
auth_strategy=keystone
# 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]
# Host providing the admin Identity API endpoint (string
# value)
#auth_host=127.0.0.1
auth_host=IDENTITY_IP
# Port of the admin Identity API endpoint (integer value)
#auth_port=35357
# Protocol of the admin Identity API endpoint(http or https)
# (string value)
#auth_protocol=https
...
# Complete public Identity API endpoint (string value)
#auth_uri=<None>
auth_uri=http://IDENTITY_IP:5000/
# Keystone account username (string value)
#admin_user=<None>
# Complete admin Identity API endpoint. This should specify
# the unversioned root endpoint e.g. https://localhost:35357/
# (string value)
identity_uri=http://IDENTITY_IP:35357/
# Service username. (string value)
admin_user=ironic
# Keystone account password (string value)
#admin_password=<None>
# Service account password. (string value)
admin_password=IRONIC_PASSWORD
# Keystone service account tenant name to validate user tokens
# (string value)
#admin_tenant_name=admin
# Service tenant name. (string value)
admin_tenant_name=service
# Directory used to cache files related to PKI tokens (string
# value)
#signing_dir=<None>
#. Set the URL (replace NEUTRON_IP) for connecting to the Networking service,
to be the Networking service endpoint::
[neutron]
# URL for connecting to neutron. (string value)
#url=http://127.0.0.1:9696
url=http://NEUTRON_IP:9696
#. Configure the Bare Metal service so that it can communicate with the
Image service. Replace GLANCE_IP with the hostname or IP address of
the Image service::
[glance]
# A list of URL schemes that can be downloaded directly via
# the direct_url. Currently supported schemes: [file]. (list
# value)
#allowed_direct_url_schemes=
# Default glance hostname or IP address. (string value)
#glance_host=$my_ip
glance_host=GLANCE_IP
# Default glance port. (integer value)
#glance_port=9292
# Default protocol to use when connecting to glance. Set to
# https for SSL. (string value)
#glance_protocol=http
# A list of the glance api servers available to nova. Prefix
# with https:// for SSL-based glance API servers. Format is
# [hostname|IP]:port. (string value)
#glance_api_servers=<None>
Note: Swift backend for the Image service should be installed and configured
for ``agent_*`` drivers. Starting with Mitaka the Bare Metal service also
supports Ceph Object Gateway (RADOS Gateway) as the Image service's backend
(:ref:`radosgw support`).
#. Create the Bare Metal service database tables::
ironic-dbsync --config-file /etc/ironic/ironic.conf create_schema
#. Restart the Bare Metal service::
#. Restart the ironic-api service::
Fedora/RHEL7/CentOS7:
sudo systemctl restart openstack-ironic-api
sudo systemctl restart openstack-ironic-conductor
Ubuntu:
sudo service ironic-api restart
Configuring ironic-conductor service
------------------------------------
#. Replace HOST_IP with IP of the conductor host, and replace DRIVERS with a
comma-separated list of drivers you chose for the conductor service as
follows::
[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
# Specify the list of drivers to load during service
# initialization. Missing drivers, or drivers which fail to
# initialize, will prevent the conductor service from
# starting. The option default is a recommended set of
# production-oriented drivers. A complete list of drivers
# present on your system may be found by enumerating the
# "ironic.drivers" entrypoint. An example may be found in the
# developer documentation online. (list value)
enabled_drivers=DRIVERS
.. 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 ironic-api service URL. Replace IRONIC_API_IP with IP of
ironic-api service as follows::
[conductor]
...
# URL of Ironic API service. If not set ironic can get the
# current value from the keystone service catalog. (string
# value)
api_url=http://IRONIC_API_IP:6385
#. 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::
[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
setting one or more of these options. Ironic-conductor should use the same
configuration as ironic-api. Replace RABBIT_HOST with the address of the RabbitMQ
server::
[DEFAULT]
...
# The messaging driver to use, defaults to rabbit. Other
# drivers include qpid and zmq. (string value)
#rpc_backend=rabbit
[oslo_messaging_rabbit]
...
# The RabbitMQ broker address where a single node is used.
# (string value)
rabbit_host=RABBIT_HOST
# The RabbitMQ userid. (string value)
#rabbit_userid=guest
# The RabbitMQ password. (string value)
#rabbit_password=guest
#. Configure the ironic-conductor service so that it can communicate with the
Image service. Replace GLANCE_IP with the hostname or IP address of
the Image service::
[glance]
...
# Default glance hostname or IP address. (string value)
glance_host=GLANCE_IP
.. note::
Swift backend for the Image service should be installed and configured
for ``agent_*`` drivers. Starting with Mitaka the Bare Metal service also
supports Ceph Object Gateway (RADOS Gateway) as the Image service's backend
(:ref:`radosgw support`).
#. Set the URL (replace NEUTRON_IP) for connecting to the Networking service,
to be the Networking service endpoint::
[neutron]
...
# URL for connecting to neutron. (string value)
url=http://NEUTRON_IP:9696
To configure the network for ironic-conductor service to perform node cleaning, see
`CleaningNetworkSetup`_.
#. Configure the ironic-conductor service to use these credentials with the Identity
service. Ironic-conductor should use the same configuration as ironic-api.
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::
[keystone_authtoken]
...
# Complete public Identity API endpoint (string value)
auth_uri=http://IDENTITY_IP:5000/
# Complete admin Identity API endpoint. This should specify
# the unversioned root endpoint e.g. https://localhost:35357/
# (string value)
identity_uri=http://IDENTITY_IP:35357/
# Service username. (string value)
admin_user=ironic
# Service account password. (string value)
admin_password=IRONIC_PASSWORD
# Service tenant name. (string value)
admin_tenant_name=service
#. Make sure that ``qemu-img`` and ``iscsiadm`` (in the case of using iscsi-deploy driver)
binaries are installed and prepare the host system as described at
`Setup the drivers for the Bare Metal service`_
#. Restart the ironic-conductor service::
Fedora/RHEL7/CentOS7:
sudo systemctl restart openstack-ironic-conductor
Ubuntu:
sudo service ironic-conductor restart