12 KiB
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.
Warning
Your hosts must contain the latest versions of base installation packages available for your distribution before proceeding further.
Note
Disable or remove any automatic update services because they can impact your OpenStack environment.
ubuntu
Enable the OpenStack repository
# apt-get install software-properties-common
# add-apt-repository cloud-archive:liberty
rdo
Prerequisites
On RHEL and CentOS, enable the EPEL repository:
# 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:
# 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.
rdo
Enable the OpenStack repository
Install the
rdo-release-liberty
package to enable the RDO repository:# yum install http://rdo.fedorapeople.org/openstack-liberty/rdo-release-liberty.rpm
obs
Enable the OpenStack repository
Enable the Open Build Service repositories based on your openSUSE or SLES version:
On openSUSE 13.2:
# zypper addrepo -f obs://Cloud:OpenStack:Liberty/openSUSE_13.2 Liberty
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:
# zypper rm patterns-openSUSE-minimal_base-conflicts
On SLES 12:
# zypper addrepo -f obs://Cloud:OpenStack:Liberty/SLE_12 Liberty
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
debian
Enable the backports repository
The Liberty release is available directly through the official Debian backports repository. To use this repository, follow the instruction from the official Debian website, which basically suggest doing the following steps:
On all nodes, adding the Debian 8 (Jessie) backport repository to the source list:
# echo "deb deb http://http.debian.net/debian jessie-backports main" \ >>/etc/apt/sources.list
Note
Later you can use the following command to install a package:
# apt-get -t jessie-backports install ``PACKAGE``
Finalize the installation
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.
rdo
Upgrade the packages on your system:
# yum upgrade
Note
If the upgrade process includes a new kernel, reboot your system to activate it.
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.
rdo
RHEL and CentOS enable
SELinux
by default. Install theopenstack-selinux
package to automatically manage security policies for OpenStack services:# yum install openstack-selinux
Note
Fedora does not require this package.
Because Fedora does not provide the
openstack-selinux
package ensure that SELinux is disabled.# sestatus SELinux status: disabled
If
SELinux status
isenabled
disable SELinux by editing the file/etc/selinux/config
and restarting the system afterwards:SELINUX=disabled
Note
CentOS and RHEL do not require this step.
Install the OpenStack client
Throughout the guide the OpenStack client will be used to perform actions on the installed services.
- Install the package:
debian or ubuntu
# apt-get install python-openstackclient
rdo
# yum install python-openstackclient
obs
# zypper install python-openstackclient
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.
Install and configure the database server
Install the packages:
rdo or ubuntu or obs
Note
The Python MySQL library is compatible with MariaDB.
ubuntu
# apt-get install mariadb-server python-pymysql
debian
# apt-get install mysql-server python-pymysql
rdo
# yum install mariadb mariadb-server python2-PyMySQL
obs
# zypper install mariadb-client mariadb python-PyMySQL
ubuntu or debian
- Choose a suitable password for the database root account.
- Create and edit the
/etc/mysql/conf.d/mysqld_openstack.cnf
file and complete the following actions:In the
[mysqld]
section, set thebind-address
key to the management IP address of the controller node to enable access by other nodes via the management network:[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:[mysqld] ... default-storage-engine = innodb innodb_file_per_table collation-server = utf8_general_ci init-connect = 'SET NAMES utf8' character-set-server = utf8
obs or rdo
- Create and edit the
/etc/my.cnf.d/mariadb_openstack.cnf
file and complete the following actions:In the
[mysqld]
section, set thebind-address
key to the management IP address of the controller node to enable access by other nodes via the management network:[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:rdo
[mysqld] ... default-storage-engine = innodb innodb_file_per_table collation-server = utf8_general_ci init-connect = 'SET NAMES utf8' character-set-server = utf8
obs
[mysqld] ... default-storage-engine = innodb innodb_file_per_table collation-server = utf8_general_ci character-set-server = utf8
To finalize installation
ubuntu or debian
Restart the database service:
# service mysql restart
rdo or obs
Start the database service and configure it to start when the system boots:
rdo
# systemctl enable mariadb.service # systemctl start mariadb.service
obs
# systemctl enable mysql.service # systemctl start mysql.service
ubuntu or rdo or obs
- Secure the database service by running the
mysql_secure_installation
script.
Message queue
OpenStack uses a 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, Qpid, and ZeroMQ. 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.
Install the message queue service
Install the package:
ubuntu or debian
# apt-get install rabbitmq-server
rdo
# yum install rabbitmq-server
obs
# zypper install rabbitmq-server
Configure the message queue service
Start the message queue service and configure it to start when the system boots:
rdo or obs
# systemctl enable rabbitmq-server.service # systemctl start rabbitmq-server.service
obs
In case the message queue service does not start and gives
nodedown
error, perform the following steps.Copy the
/usr/lib/systemd/system/epmd.socket
file to the/etc/systemd/system
directory.Edit the
/etc/systemd/system/epmd.socket
file to contain the following:[Socket] ... ListenStream=MANAGEMENT_INTERFACE_IP_ADDRESS:4369
Replace
MANAGEMENT_INTERFACE_IP_ADDRESS
with the IP address of the management network interface on your controller node.Start the message queue service again.
Add the
openstack
user:# rabbitmqctl add_user openstack RABBIT_PASS Creating user "openstack" ...
Replace
RABBIT_PASS
with a suitable password.Permit configuration, write, and read access for the
openstack
user:# rabbitmqctl set_permissions openstack ".*" ".*" ".*" Setting permissions for user "openstack" in vhost "/" ...