openstack-manuals/doc/install-guide-rst/source/basics-packages.rst
Karen Bradshaw bdcedc2480 Inst guide, Basic Env, toc changes
-Add figures for networking-neutron and networking-nova
instead of links to arch. section.
-Remove hidden toc and includes. Add main toc
for Basic Env. section.
-Remove hidden toc from networking section.
Add toc for networking.
-Consolidate smaller sections under new heading.

Change-Id: Ie75a0edaf76e8bb77da490b421221c56a5808663
Implements: blueprint installguide-liberty
2015-07-25 19:35:08 -04:00

464 lines
12 KiB
ReStructuredText

.. highlight:: ini
:linenothreshold: 1
==============================
OpenStack service dependencies
==============================
OpenStack packages
------------------
Distributions release OpenStack packages as part of the distribution or
using other methods because of differing release schedules. Perform
these procedures on all nodes.
.. note::
Disable or remove any automatic update services because they can
impact your OpenStack environment.
.. only:: ubuntu
**To enable the OpenStack repository**
* Install the Ubuntu Cloud archive keyring and repository:
.. code-block:: console
# apt-get install ubuntu-cloud-keyring
# echo "deb http://ubuntu-cloud.archive.canonical.com/ubuntu" \
"trusty-updates/kilo main" > /etc/apt/sources.list.d/ \
cloudarchive-kilo.list
.. only:: rdo
**To configure prerequisites**
#. On RHEL and CentOS, enable the
`EPEL <https://fedoraproject.org/wiki/EPEL>`_ repository:
.. code-block:: console
# yum install http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
.. note::
Fedora does not require this repository.
#. On RHEL, enable additional repositories using the subscription
manager:
.. code-block:: console
# subscription-manager repos --enable=rhel-7-server-optional-rpms
# subscription-manager repos --enable=rhel-7-server-extras-rpms
.. note::
CentOS and Fedora do not require these repositories.
.. only:: rdo
**To enable the OpenStack repository**
* Install the ``rdo-release-kilo`` package to enable the RDO repository:
.. code-block:: console
# yum install http://rdo.fedorapeople.org/openstack-kilo/rdo-release-kilo.rpm
.. only:: obs
**To enable the OpenStack repository**
* Enable the Open Build Service repositories based on your openSUSE or
SLES version:
**On openSUSE 13.2:**
.. code-block:: console
# zypper addrepo -f obs://Cloud:OpenStack:Kilo/openSUSE_13.2 Kilo
The openSUSE distribution uses the concept of patterns to represent
collections of packages. If you selected 'Minimal Server Selection (Text
Mode)' during the initial installation, you may be presented with a
dependency conflict when you attempt to install the OpenStack packages.
To avoid this, remove the minimal\_base-conflicts package:
.. code-block:: console
# zypper rm patterns-openSUSE-minimal_base-conflicts
**On SLES 12:**
.. code-block:: console
# zypper addrepo -f obs://Cloud:OpenStack:Kilo/SLE_12 Kilo
.. note::
The packages are signed by GPG key 893A90DAD85F9316. You should
verify the fingerprint of the imported GPG key before using it.
::
Key ID: 893A90DAD85F9316
Key Name: Cloud:OpenStack OBS Project <Cloud:OpenStack@build.opensuse.org>
Key Fingerprint: 35B34E18ABC1076D66D5A86B893A90DAD85F9316
Key Created: Tue Oct 8 13:34:21 2013
Key Expires: Thu Dec 17 13:34:21 2015
.. only:: debian
** To use the Debian Wheezy backports archive for Juno**
The Juno release is available only in Debian Experimental (otherwise
called rc-buggy), as Jessie is frozen soon, and will contain Icehouse.
However, the Debian maintainers of OpenStack also maintain a
non-official Debian repository for OpenStack containing Wheezy
backports.
#. On all nodes, install the Debian Wheezy backport repository Juno:
.. code-block:: console
# echo "deb http://archive.gplhost.com/debian juno-backports main" \
>>/etc/apt/sources.list
#. Install the Debian Wheezy OpenStack repository for Juno:
.. code-block:: console
# echo "deb http://archive.gplhost.com/debian juno-backports main" \
>>/etc/apt/sources.list
#. Update the repository database and install the key:
::
$ apt-get update && apt-get install gplhost-archive-keyring
#. Update the package database, upgrade your system, and reboot
for all changes to take effect:
.. code-block:: console
$ apt-get update && apt-get dist-upgrade
$ reboot
Numerous archive.gplhost.com mirrors are available around the world. All
are available with both FTP and HTTP protocols (you should use the
closest mirror). The list of mirrors is available at
`http://archive.gplhost.com/readme.mirrors
<http://archive.gplhost.com/readme.mirrors>`_ .
**Manually install python-argparse**
The Debian OpenStack packages are maintained on Debian Sid (also known
as Debian Unstable) - the current development version. Backported
packages run correctly on Debian Wheezy with one caveat:
All OpenStack packages are written in Python. All packages support
version 2.7; porting to Python version 3 is ongoing. Note that Debian
Wheezy uses Python 2.6 and 2.7, with Python 2.7 as the default
interpreter; Sid has only Python 2.7. There is one packaging change
between these two. In Python 2.6, you installed the ``python-argparse``
package separately. In Python 2.7, this package is installed by default.
Unfortunately, in Python 2.7, this package does not include ``Provides:
python-argparse`` directive.
#. Because the packages are maintained in Sid where the
``Provides: python-argparse`` directive causes an error, and the Debian
OpenStack maintainer wants to maintain one version of the OpenStack
packages, you must manually install the ``python-argparse`` on each
OpenStack system that runs Debian Wheezy before you install the other
OpenStack packages. Use the following command to install the package:
.. code-block:: console
# apt-get install python-argparse
This caveat applies to most OpenStack packages in Wheezy.
|
**To finalize the installation**
.. only:: ubuntu or debian
* Upgrade the packages on your system:
::
$ apt-get update && apt-get dist-upgrade
.. note::
If the upgrade process includes a new kernel, reboot your system
to activate it.
.. only:: rdo
#. Upgrade the packages on your system:
.. code-block:: console
# yum upgrade
.. note::
If the upgrade process includes a new kernel, reboot your system
to activate it.
.. only:: obs
* Upgrade the packages on your system:
::
$ zypper refresh && zypper dist-upgrade
.. note::
If the upgrade process includes a new kernel, reboot your system
to activate it.
.. only:: rdo
2. RHEL and CentOS enable :term:`SELinux` by default. Install the
``openstack-selinux`` package to automatically manage security
policies for OpenStack services:
.. code-block:: console
# yum install openstack-selinux
.. note::
Fedora does not require this package.
.. note::
The installation process for this package can take a while.
|
SQL database
------------
Most OpenStack services use an SQL database to store information. The
database typically runs on the controller node. The procedures in this
guide use MariaDB or MySQL depending on the distribution. OpenStack
services also support other SQL databases including
`PostgreSQL <http://www.postgresql.org/>`__.
**To install and configure the database server**
1. Install the packages:
.. only:: rdo or ubuntu or obs
.. note::
The Python MySQL library is compatible with MariaDB.
.. only:: ubuntu
.. code-block:: console
# apt-get install mariadb-server python-mysqldb
.. only:: debian
.. code-block:: console
# apt-get install mysql-server python-mysqldb
.. only:: rdo
.. code-block:: console
# yum install mariadb mariadb-server MySQL-python
.. only:: obs
.. code-block:: console
# zypper install mariadb-client mariadb python-mysql
.. only:: ubuntu or debian
2. Choose a suitable password for the database root account.
3. Create and edit the :file:`/etc/mysql/conf.d/mysqld_openstack.cnf` file
and complete the following actions:
- In the ``[mysqld]`` section, set the
``bind-address`` key to the management IP
address of the controller node to enable access by other
nodes via the management network:
.. code:: ini
[mysqld]
...
bind-address = 10.0.0.11
- In the ``[mysqld]`` section, set the following keys to enable
useful options and the UTF-8 character set:
.. code:: ini
[mysqld]
...
default-storage-engine = innodb
innodb_file_per_table
collation-server = utf8_general_ci
init-connect = 'SET NAMES utf8'
character-set-server = utf8
.. only:: obs or rdo
2. Create and edit the :file:`/etc/my.cnf.d/mariadb_openstack.cnf` file
and complete the following actions:
- In the ``[mysqld]`` section, set the
``bind-address`` key to the management IP
address of the controller node to enable access by other
nodes via the management network:
.. code:: ini
[mysqld]
...
bind-address = 10.0.0.11
- In the ``[mysqld]`` section, set the following keys to enable
useful options and the UTF-8 character set:
.. code:: ini
[mysqld]
...
default-storage-engine = innodb
innodb_file_per_table
collation-server = utf8_general_ci
init-connect = 'SET NAMES utf8'
character-set-server = utf8
**To finalize installation**
.. only:: ubuntu or debian
1. Restart the database service:
.. code-block:: console
# service mysql restart
.. only:: rdo or obs
1. Start the database service and configure it to start when the system
boots:
.. only:: rdo
.. code-block:: console
# systemctl enable mariadb.service
# systemctl start mariadb.service
.. only:: obs
.. code-block:: console
# systemctl enable mysql.service
# systemctl start mysql.service
.. only:: ubuntu or debian
2. Secure the database service:
.. literalinclude:: mariadb_output.txt
.. only:: rdo or obs
2. Secure the database service including choosing a suitable
password for the root account:
.. literalinclude:: mariadb_output.txt
|
Message queue
-------------
OpenStack uses a :term:`message queue` to coordinate operations and
status information among services. The message queue service typically
runs on the controller node. OpenStack supports several message queue
services including `RabbitMQ <http://www.rabbitmq.com>`__,
`Qpid <http://qpid.apache.org>`__, and `ZeroMQ <http://zeromq.org>`__.
However, most distributions that package OpenStack support a particular
message queue service. This guide implements the RabbitMQ message queue
service because most distributions support it. If you prefer to
implement a different message queue service, consult the documentation
associated with it.
**To install the message queue service**
* Install the package:
.. only:: ubuntu or debian
.. code-block:: console
# apt-get install rabbitmq-server
.. only:: rdo
.. code-block:: console
# yum install rabbitmq-server
.. only:: obs
.. code-block:: console
# zypper install rabbitmq-server
**To configure the message queue service**
#. Start the message queue service and configure it to start when the
system boots:
.. only:: rdo or obs
.. code-block:: console
# systemctl enable rabbitmq-server.service
# systemctl start rabbitmq-server.service
#. Add the ``openstack`` user:
.. code-block:: console
# rabbitmqctl add_user openstack `RABBIT_PASS`
Creating user "openstack" ...
...done.
Replace `RABBIT_PASS` with a suitable password.
#. Permit configuration, write, and read access for the
``openstack`` user:
.. code-block:: console
# rabbitmqctl set_permissions openstack ".*" ".*" ".*"
Setting permissions for user "openstack" in vhost "/" ...
...done.