2016-05-16 20:37:35 +05:30
|
|
|
|
.. quickstart:
|
|
|
|
|
|
2016-05-31 12:33:27 +01:00
|
|
|
|
===========
|
|
|
|
|
Quick Start
|
|
|
|
|
===========
|
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
This guide provides step by step instructions to deploy OpenStack using Kolla
|
|
|
|
|
and Kolla-Ansible on bare metal servers or virtual machines.
|
2015-03-24 00:56:01 +00:00
|
|
|
|
|
2015-11-02 20:38:54 +03:00
|
|
|
|
Host machine requirements
|
2016-05-16 20:37:35 +05:30
|
|
|
|
=========================
|
2015-11-02 20:38:54 +03:00
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
The host machine must satisfy the following minimum requirements:
|
2015-11-02 20:38:54 +03:00
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
- 2 network interfaces
|
|
|
|
|
- 8GB main memory
|
|
|
|
|
- 40GB disk space
|
2015-11-02 20:38:54 +03:00
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
.. note::
|
2016-02-10 18:21:00 +01:00
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
Root access to the deployment host machine is required.
|
|
|
|
|
|
|
|
|
|
Recommended environment
|
2016-05-16 20:37:35 +05:30
|
|
|
|
=======================
|
2016-05-02 18:28:35 -04:00
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
This guide recommends using a bare metal server or a virtual machine. Follow
|
|
|
|
|
the instructions in this document to get started with deploying OpenStack on
|
|
|
|
|
bare metal or a virtual machine with Kolla.
|
2016-05-02 18:28:35 -04:00
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
If developing Kolla on a system that provides VirtualBox or Libvirt in addition
|
|
|
|
|
to Vagrant, use the Vagrant virtual environment documented in
|
2017-04-12 10:45:59 -05:00
|
|
|
|
`Development Environment with Vagrant <https://docs.openstack.org/developer/kolla-ansible/vagrant-dev-env.html>`_.
|
2017-01-27 18:52:04 +00:00
|
|
|
|
|
|
|
|
|
Prerequisites
|
|
|
|
|
=============
|
2016-09-16 20:49:47 +00:00
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
Verify the state of network interfaces. If using a VM spawned on
|
|
|
|
|
OpenStack as the host machine, the state of the second interface will be DOWN
|
|
|
|
|
on booting the VM.
|
2016-09-16 20:49:47 +00:00
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
::
|
2016-09-16 20:49:47 +00:00
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
ip addr show
|
2016-09-16 20:49:47 +00:00
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
Bring up the second network interface if it is down.
|
2016-09-16 20:49:47 +00:00
|
|
|
|
|
|
|
|
|
::
|
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
ip link set ens4 up
|
2016-09-16 20:49:47 +00:00
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
Verify if the second interface has an IP address.
|
|
|
|
|
|
|
|
|
|
::
|
2016-09-16 20:49:47 +00:00
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
ip addr show
|
2016-09-16 20:49:47 +00:00
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
Install dependencies
|
2016-05-16 20:37:35 +05:30
|
|
|
|
====================
|
2015-03-16 10:27:03 -04:00
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
Kolla builds images which are used by Kolla-Ansible to deploy OpenStack. The
|
|
|
|
|
deployment is tested on CentOS, Oracle Linux and Ubuntu as both container OS
|
2016-05-27 08:09:56 -04:00
|
|
|
|
platforms and bare metal deployment targets.
|
2015-08-24 05:00:25 -05:00
|
|
|
|
|
2016-08-04 15:09:10 +02:00
|
|
|
|
.. note:: Install is *very* sensitive about version of components. Please
|
2017-01-27 18:52:04 +00:00
|
|
|
|
review carefully because default Operating System repos are likely out of
|
|
|
|
|
date.
|
2015-11-02 20:38:54 +03:00
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
Dependencies for the stable/mitaka branch are:
|
2016-08-16 22:18:48 -04:00
|
|
|
|
|
|
|
|
|
===================== =========== =========== =========================
|
|
|
|
|
Component Min Version Max Version Comment
|
|
|
|
|
===================== =========== =========== =========================
|
2017-01-27 18:52:04 +00:00
|
|
|
|
Ansible 1.9.4 <2.0.0 On deployment host
|
2016-08-16 22:18:48 -04:00
|
|
|
|
Docker 1.10.0 none On target nodes
|
|
|
|
|
Docker Python 1.6.0 none On target nodes
|
|
|
|
|
Python Jinja2 2.6.0 none On deployment host
|
|
|
|
|
===================== =========== =========== =========================
|
|
|
|
|
|
2017-05-04 17:14:36 +08:00
|
|
|
|
Dependencies for the stable/newton are:
|
2016-08-16 22:18:48 -04:00
|
|
|
|
|
2015-11-02 20:38:54 +03:00
|
|
|
|
===================== =========== =========== =========================
|
|
|
|
|
Component Min Version Max Version Comment
|
|
|
|
|
===================== =========== =========== =========================
|
2016-06-13 09:23:00 -04:00
|
|
|
|
Ansible 2.0.0 none On deployment host
|
2016-02-09 13:18:19 +08:00
|
|
|
|
Docker 1.10.0 none On target nodes
|
2016-01-03 17:03:08 +00:00
|
|
|
|
Docker Python 1.6.0 none On target nodes
|
2016-04-15 19:55:19 -07:00
|
|
|
|
Python Jinja2 2.8.0 none On deployment host
|
2015-11-02 20:38:54 +03:00
|
|
|
|
===================== =========== =========== =========================
|
|
|
|
|
|
2017-05-04 17:14:36 +08:00
|
|
|
|
Dependencies for the stable/ocata branch and later (including master branch)
|
|
|
|
|
are:
|
|
|
|
|
|
|
|
|
|
===================== =========== =========== =========================
|
|
|
|
|
Component Min Version Max Version Comment
|
|
|
|
|
===================== =========== =========== =========================
|
|
|
|
|
Ansible 2.0.0 none On deployment host
|
|
|
|
|
Docker 1.10.0 none On target nodes
|
|
|
|
|
Docker Python 1.8.1 none On target nodes
|
|
|
|
|
Python Jinja2 2.8.0 none On deployment host
|
|
|
|
|
===================== =========== =========== =========================
|
2015-11-02 20:38:54 +03:00
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
Make sure the ``pip`` package manager is installed and upgraded to the latest
|
2016-08-04 15:09:10 +02:00
|
|
|
|
before proceeding:
|
2015-11-03 17:25:02 +03:00
|
|
|
|
|
|
|
|
|
::
|
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
#CentOS
|
2016-08-06 19:52:28 +02:00
|
|
|
|
yum install epel-release
|
|
|
|
|
yum install python-pip
|
2017-01-27 18:52:04 +00:00
|
|
|
|
pip install -U pip
|
2015-11-03 17:25:02 +03:00
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
#Ubuntu
|
|
|
|
|
apt-get update
|
2016-08-06 19:52:28 +02:00
|
|
|
|
apt-get install python-pip
|
2016-06-24 13:45:36 +09:00
|
|
|
|
pip install -U pip
|
2016-05-02 18:28:35 -04:00
|
|
|
|
|
2016-10-08 16:57:10 +05:30
|
|
|
|
Install dependencies needed to build the code with ``pip`` package manager.
|
|
|
|
|
|
|
|
|
|
::
|
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
#CentOS
|
|
|
|
|
yum install python-devel libffi-devel gcc openssl-devel
|
|
|
|
|
|
|
|
|
|
#Ubuntu
|
2016-10-18 16:13:19 +05:30
|
|
|
|
apt-get install python-dev libffi-dev gcc libssl-dev
|
2016-10-08 16:57:10 +05:30
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
Kolla deploys OpenStack using `Ansible <http://www.ansible.com>`__. Install
|
|
|
|
|
Ansible from distribution packaging if the distro packaging has recommended
|
|
|
|
|
version available.
|
|
|
|
|
|
|
|
|
|
Some implemented distro versions of Ansible are too old to use distro
|
|
|
|
|
packaging. Currently, CentOS and RHEL package Ansible >2.0 which is suitable
|
|
|
|
|
for use with Kolla. Note that you will need to enable access to the EPEL
|
|
|
|
|
repository to install via yum -- to do so, take a look at Fedora's EPEL `docs
|
|
|
|
|
<https://fedoraproject.org/wiki/EPEL>`__ and `FAQ
|
|
|
|
|
<https://fedoraproject.org/wiki/EPEL/FAQ>`__.
|
|
|
|
|
|
|
|
|
|
On CentOS or RHEL systems, this can be done using:
|
|
|
|
|
|
|
|
|
|
::
|
|
|
|
|
|
|
|
|
|
yum install ansible
|
|
|
|
|
|
|
|
|
|
Many DEB based systems do not meet Kolla's Ansible version requirements. It is
|
|
|
|
|
recommended to use pip to install Ansible >2.0. Finally Ansible >2.0 may be
|
|
|
|
|
installed using:
|
|
|
|
|
|
|
|
|
|
::
|
|
|
|
|
|
|
|
|
|
pip install -U ansible
|
|
|
|
|
|
|
|
|
|
.. note:: It is recommended to use virtualenv to install non-system packages.
|
|
|
|
|
|
|
|
|
|
If DEB based systems include a version of Ansible that meets Kolla's version
|
|
|
|
|
requirements it can be installed by:
|
|
|
|
|
|
|
|
|
|
::
|
|
|
|
|
|
|
|
|
|
apt-get install ansible
|
|
|
|
|
|
|
|
|
|
.. WARNING::
|
|
|
|
|
Kolla uses PBR in its implementation. PBR provides version information
|
|
|
|
|
to Kolla about the package in use. This information is later used when
|
|
|
|
|
building images to specify the Docker tag used in the image built. When
|
|
|
|
|
installing the Kolla package via pip, PBR will always use the PBR version
|
|
|
|
|
information. When obtaining a copy of the software via git, PBR will use
|
|
|
|
|
the git version information, but **ONLY** if Kolla has not been pip
|
|
|
|
|
installed via the pip package manager. This is why there is an operator
|
|
|
|
|
workflow and a developer workflow.
|
|
|
|
|
|
|
|
|
|
The following dependencies can be installed by bootstraping the host machine
|
|
|
|
|
as described in the `Automatic host bootstrap`_ section. For manual
|
|
|
|
|
installation, follow the instructions below:
|
2016-10-08 16:57:10 +05:30
|
|
|
|
|
2015-08-21 02:05:23 -07:00
|
|
|
|
Since Docker is required to build images as well as be present on all deployed
|
2016-02-26 11:51:26 -05:00
|
|
|
|
targets, the Kolla community recommends installing the official Docker, Inc.
|
|
|
|
|
packaged version of Docker for maximum stability and compatibility with the
|
|
|
|
|
following command:
|
2015-08-06 01:41:38 +00:00
|
|
|
|
|
2015-08-20 23:06:10 -07:00
|
|
|
|
::
|
2015-08-14 20:03:22 -07:00
|
|
|
|
|
2015-08-06 01:41:38 +00:00
|
|
|
|
curl -sSL https://get.docker.io | bash
|
|
|
|
|
|
2015-11-02 20:38:54 +03:00
|
|
|
|
This command will install the most recent stable version of Docker, but please
|
2016-12-08 08:07:12 -06:00
|
|
|
|
note that Kolla releases are not in sync with Docker in any way, so some things
|
2016-02-24 13:57:16 -06:00
|
|
|
|
could stop working with new version. The latest release of Kolla is tested to
|
2017-02-04 07:26:40 -07:00
|
|
|
|
work with docker-engine>=1.10.0,!=1.13.0. To check your Docker version run this
|
2016-02-24 13:57:16 -06:00
|
|
|
|
command:
|
2015-11-02 20:38:54 +03:00
|
|
|
|
|
|
|
|
|
::
|
|
|
|
|
|
|
|
|
|
docker --version
|
|
|
|
|
|
2016-05-27 08:09:56 -04:00
|
|
|
|
When running with systemd, setup docker-engine with the appropriate information
|
|
|
|
|
in the Docker daemon to launch with. This means setting up the following
|
|
|
|
|
information in the ``docker.service`` file. If you do not set the MountFlags
|
|
|
|
|
option correctly then ``kolla-ansible`` will fail to deploy the
|
2016-05-17 08:44:47 +05:30
|
|
|
|
``neutron-dhcp-agent`` container and throws APIError/HTTPError. After adding
|
2016-12-08 08:07:12 -06:00
|
|
|
|
the drop-in unit file as follows, reload and restart the Docker service:
|
2016-02-17 03:22:20 +00:00
|
|
|
|
|
|
|
|
|
::
|
|
|
|
|
|
2016-03-19 03:49:03 +00:00
|
|
|
|
# Create the drop-in unit directory for docker.service
|
|
|
|
|
mkdir -p /etc/systemd/system/docker.service.d
|
|
|
|
|
|
|
|
|
|
# Create the drop-in unit file
|
|
|
|
|
tee /etc/systemd/system/docker.service.d/kolla.conf <<-'EOF'
|
2016-02-17 03:22:20 +00:00
|
|
|
|
[Service]
|
|
|
|
|
MountFlags=shared
|
2016-03-19 03:49:03 +00:00
|
|
|
|
EOF
|
2016-02-17 03:22:20 +00:00
|
|
|
|
|
2016-12-08 08:07:12 -06:00
|
|
|
|
Restart Docker by executing the following commands:
|
2016-07-25 20:39:25 -04:00
|
|
|
|
|
|
|
|
|
::
|
|
|
|
|
|
2016-02-17 03:22:20 +00:00
|
|
|
|
# Run these commands to reload the daemon
|
|
|
|
|
systemctl daemon-reload
|
|
|
|
|
systemctl restart docker
|
|
|
|
|
|
2016-03-10 04:12:47 +00:00
|
|
|
|
On the target hosts you also need an updated version of the Docker python
|
2016-05-13 15:56:14 +08:00
|
|
|
|
libraries:
|
|
|
|
|
|
2016-08-04 15:09:10 +02:00
|
|
|
|
.. note:: The old docker-python is obsoleted by python-docker-py.
|
2016-05-13 15:56:14 +08:00
|
|
|
|
|
|
|
|
|
::
|
|
|
|
|
|
2016-08-06 19:52:28 +02:00
|
|
|
|
yum install python-docker-py
|
2016-05-13 15:56:14 +08:00
|
|
|
|
|
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
Or using ``pip`` to install the latest version:
|
2016-03-10 04:12:47 +00:00
|
|
|
|
|
|
|
|
|
::
|
|
|
|
|
|
|
|
|
|
pip install -U docker-py
|
|
|
|
|
|
|
|
|
|
|
2016-05-27 08:09:56 -04:00
|
|
|
|
OpenStack, RabbitMQ, and Ceph require all hosts to have matching times to
|
|
|
|
|
ensure proper message delivery. In the case of Ceph, it will complain if the
|
|
|
|
|
hosts differ by more than 0.05 seconds. Some OpenStack services have timers as
|
|
|
|
|
low as 2 seconds by default. For these reasons it is highly recommended to
|
|
|
|
|
setup an NTP service of some kind. While ``ntpd`` will achieve more accurate
|
|
|
|
|
time for the deployment if the NTP servers are running in the local deployment
|
|
|
|
|
environment, `chrony <http://chrony.tuxfamily.org>`_ is more accurate when
|
|
|
|
|
syncing the time across a WAN connection. When running Ceph it is recommended
|
|
|
|
|
to setup ``ntpd`` to sync time locally due to the tight time constraints.
|
2015-11-05 09:10:47 +00:00
|
|
|
|
|
|
|
|
|
To install, start, and enable ntp on CentOS execute the following:
|
2015-10-11 01:17:54 -07:00
|
|
|
|
|
|
|
|
|
::
|
|
|
|
|
|
2016-03-24 06:45:26 +00:00
|
|
|
|
# CentOS 7
|
2016-08-06 19:52:28 +02:00
|
|
|
|
yum install ntp
|
2015-11-03 17:25:02 +03:00
|
|
|
|
systemctl enable ntpd.service
|
|
|
|
|
systemctl start ntpd.service
|
2015-10-11 01:17:54 -07:00
|
|
|
|
|
2015-11-05 09:10:47 +00:00
|
|
|
|
To install and start on Debian based systems execute the following:
|
|
|
|
|
|
|
|
|
|
::
|
|
|
|
|
|
|
|
|
|
apt-get install ntp
|
2015-11-02 20:38:54 +03:00
|
|
|
|
|
2016-05-27 08:09:56 -04:00
|
|
|
|
Libvirt is started by default on many operating systems. Please disable
|
|
|
|
|
``libvirt`` on any machines that will be deployment targets. Only one copy of
|
|
|
|
|
libvirt may be running at a time.
|
2015-03-26 17:33:09 -07:00
|
|
|
|
|
2015-08-20 23:06:10 -07:00
|
|
|
|
::
|
2015-03-26 17:33:09 -07:00
|
|
|
|
|
2016-03-24 06:45:26 +00:00
|
|
|
|
# CentOS 7
|
2015-11-03 17:25:02 +03:00
|
|
|
|
systemctl stop libvirtd.service
|
|
|
|
|
systemctl disable libvirtd.service
|
|
|
|
|
|
|
|
|
|
# Ubuntu
|
|
|
|
|
service libvirt-bin stop
|
|
|
|
|
update-rc.d libvirt-bin disable
|
2015-03-16 10:27:03 -04:00
|
|
|
|
|
2016-03-31 19:35:46 +00:00
|
|
|
|
On Ubuntu, apparmor will sometimes prevent libvirt from working.
|
|
|
|
|
|
|
|
|
|
::
|
2016-06-16 16:36:38 +08:00
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
/usr/sbin/libvirtd: error while loading shared libraries:
|
|
|
|
|
libvirt-admin.so.0: cannot open shared object file: Permission denied
|
2016-03-31 19:35:46 +00:00
|
|
|
|
|
2016-05-27 08:09:56 -04:00
|
|
|
|
If you are seeing the libvirt container fail with the error above, disable the
|
|
|
|
|
libvirt profile.
|
2016-03-31 19:35:46 +00:00
|
|
|
|
|
|
|
|
|
::
|
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.libvirtd
|
2016-03-31 19:35:46 +00:00
|
|
|
|
|
2016-05-02 18:28:35 -04:00
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
.. note::
|
2015-11-02 20:38:54 +03:00
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
On Ubuntu 16.04, please uninstall lxd and lxc packages. (An issue exists
|
|
|
|
|
with cgroup mounts, mounts exponentially increasing when restarting
|
|
|
|
|
container).
|
2016-02-11 20:27:48 -05:00
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
Additional steps for upstart and other non-systemd distros
|
|
|
|
|
==========================================================
|
|
|
|
|
|
2017-04-05 16:25:28 +02:00
|
|
|
|
For other non-systemd distros, run the following.
|
2015-08-21 02:05:23 -07:00
|
|
|
|
|
|
|
|
|
::
|
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
mount --make-shared /run
|
|
|
|
|
mount --make-shared /var/lib/nova/mnt
|
2015-08-21 02:05:23 -07:00
|
|
|
|
|
2017-05-02 20:02:41 +09:00
|
|
|
|
If /var/lib/nova/mnt is not present, do the workaround below.
|
2015-08-21 02:05:23 -07:00
|
|
|
|
|
|
|
|
|
::
|
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
mkdir -p /var/lib/nova/mnt /var/lib/nova/mnt1
|
|
|
|
|
mount --bind /var/lib/nova/mnt1 /var/lib/nova/mnt
|
|
|
|
|
mount --make-shared /var/lib/nova/mnt
|
2015-08-21 02:05:23 -07:00
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
For mounting /run and /var/lib/nova/mnt as shared upon startup, edit
|
|
|
|
|
/etc/rc.local to add the following.
|
2015-11-03 17:25:02 +03:00
|
|
|
|
|
|
|
|
|
::
|
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
mount --make-shared /run
|
|
|
|
|
mount --make-shared /var/lib/nova/mnt
|
2015-11-03 17:25:02 +03:00
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
.. note::
|
|
|
|
|
|
|
|
|
|
If CentOS/Fedora/OracleLinux container images are built on an Ubuntu host,
|
|
|
|
|
the back-end storage driver must not be AUFS (see the known issues in
|
2017-02-02 19:29:57 +00:00
|
|
|
|
`Building Container Images`_).
|
2016-08-16 22:18:48 -04:00
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
Install Kolla for deployment or evaluation
|
|
|
|
|
==========================================
|
2015-11-03 17:25:02 +03:00
|
|
|
|
|
2017-02-06 16:25:34 +00:00
|
|
|
|
Install kolla-ansible and its dependencies using pip.
|
2016-08-16 22:18:48 -04:00
|
|
|
|
|
|
|
|
|
::
|
|
|
|
|
|
2017-02-06 16:25:34 +00:00
|
|
|
|
pip install kolla-ansible
|
2016-08-16 22:18:48 -04:00
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
Copy the configuration files globals.yml and passwords.yml to /etc directory.
|
2016-08-16 22:18:48 -04:00
|
|
|
|
|
|
|
|
|
::
|
2016-10-01 00:56:04 +07:00
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
#CentOS
|
2017-02-22 17:47:29 +08:00
|
|
|
|
cp -r /usr/share/kolla-ansible/etc_examples/kolla /etc/kolla/
|
2016-08-16 22:18:48 -04:00
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
#Ubuntu
|
2017-02-22 17:47:29 +08:00
|
|
|
|
cp -r /usr/local/share/kolla-ansible/etc_examples/kolla /etc/kolla/
|
2017-01-27 18:52:04 +00:00
|
|
|
|
|
|
|
|
|
The inventory files (all-in-one and multinode) are located in
|
2017-03-02 09:36:21 +01:00
|
|
|
|
/usr/local/share/kolla-ansible/ansible/inventory. Copy the configuration files
|
|
|
|
|
to the current directory.
|
2017-01-27 18:52:04 +00:00
|
|
|
|
|
|
|
|
|
::
|
2016-09-15 20:19:33 +05:30
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
#CentOS
|
2017-02-22 17:47:29 +08:00
|
|
|
|
cp /usr/share/kolla-ansible/ansible/inventory/* .
|
2015-11-09 12:13:12 -07:00
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
#Ubuntu
|
2017-02-22 17:47:29 +08:00
|
|
|
|
cp /usr/local/share/kolla-ansible/ansible/inventory/* .
|
2017-01-27 18:52:04 +00:00
|
|
|
|
|
|
|
|
|
Install Kolla for development
|
|
|
|
|
=============================
|
|
|
|
|
|
|
|
|
|
Clone the Kolla and Kolla-Ansible repositories from git.
|
2015-11-09 12:13:12 -07:00
|
|
|
|
|
2016-05-02 18:28:35 -04:00
|
|
|
|
::
|
2015-11-09 12:13:12 -07:00
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
git clone https://github.com/openstack/kolla
|
|
|
|
|
git clone https://github.com/openstack/kolla-ansible
|
2015-11-09 12:13:12 -07:00
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
Kolla-ansible holds configuration files (globals.yml and passwords.yml) in
|
|
|
|
|
etc/kolla. Copy the configuration files to /etc directory.
|
2015-11-09 12:13:12 -07:00
|
|
|
|
|
2016-05-02 18:28:35 -04:00
|
|
|
|
::
|
2015-11-09 12:13:12 -07:00
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
cp -r kolla-ansible/etc/kolla /etc/kolla/
|
2016-08-16 22:18:48 -04:00
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
Kolla-ansible holds the inventory files (all-in-one and multinode) in
|
|
|
|
|
ansible/inventory. Copy the configuration files to the current directory.
|
2015-11-09 12:13:12 -07:00
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
::
|
|
|
|
|
|
|
|
|
|
cp kolla-ansible/ansible/inventory/* .
|
|
|
|
|
|
|
|
|
|
Local Registry
|
|
|
|
|
==============
|
|
|
|
|
|
|
|
|
|
A local registry is recommended but not required for an ``all-in-one``
|
|
|
|
|
installation when developing for master. Since no master images are available
|
|
|
|
|
on docker hub, the docker cache may be used for all-in-one deployments. When
|
|
|
|
|
deploying multinode, a registry is strongly recommended to serve as a single
|
2017-03-22 11:05:35 +00:00
|
|
|
|
source of images. Reference the
|
|
|
|
|
`Multinode Deployment of Kolla <https://docs.openstack.org/project-deploy-guide/kolla-ansible/ocata/multinode.html>`_
|
|
|
|
|
for more information on using a local Docker registry.
|
|
|
|
|
Otherwise, the Docker Hub Image Registry contains all
|
2017-01-27 18:52:04 +00:00
|
|
|
|
images from each of Kolla’s major releases. The latest release tag is 3.0.2 for
|
|
|
|
|
Newton.
|
|
|
|
|
|
|
|
|
|
Automatic host bootstrap
|
|
|
|
|
========================
|
|
|
|
|
|
|
|
|
|
Edit the ``/etc/kolla/globals.yml`` file to configure interfaces.
|
2015-11-09 12:13:12 -07:00
|
|
|
|
|
|
|
|
|
::
|
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
network_interface: "ens3"
|
|
|
|
|
neutron_external_interface: "ens4"
|
2016-05-02 18:28:35 -04:00
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
Generate passwords. This will populate all empty fields in the
|
|
|
|
|
``/etc/kolla/passwords.yml`` file using randomly generated values to secure the
|
|
|
|
|
deployment. Optionally, the passwords may be populated in the file by hand.
|
2016-05-02 18:28:35 -04:00
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
::
|
|
|
|
|
|
|
|
|
|
kolla-genpwd
|
2015-11-09 12:13:12 -07:00
|
|
|
|
|
2017-03-19 22:54:27 -04:00
|
|
|
|
To quickly prepare hosts, playbook bootstrap-servers can be used. This is an
|
2017-04-05 16:25:28 +02:00
|
|
|
|
Ansible playbook which works on Ubuntu 16.04 and CentOS 7 hosts to
|
2017-01-27 18:52:04 +00:00
|
|
|
|
install and prepare the cluster for OpenStack installation.
|
2015-11-09 12:13:12 -07:00
|
|
|
|
|
|
|
|
|
::
|
2016-06-16 16:36:38 +08:00
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
kolla-ansible -i <<inventory file>> bootstrap-servers
|
2016-05-02 18:28:35 -04:00
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
Build container images
|
|
|
|
|
======================
|
2016-06-16 16:36:38 +08:00
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
When running with systemd, edit the file
|
|
|
|
|
``/etc/systemd/system/docker.service.d/kolla.conf``
|
|
|
|
|
to include the MTU size to be used for Docker containers.
|
2016-06-16 16:36:38 +08:00
|
|
|
|
|
|
|
|
|
::
|
2016-05-02 18:28:35 -04:00
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
[Service]
|
|
|
|
|
MountFlags=shared
|
|
|
|
|
ExecStart=
|
|
|
|
|
ExecStart=/usr/bin/docker daemon \
|
|
|
|
|
-H fd:// \
|
|
|
|
|
--mtu 1400
|
2016-05-02 18:28:35 -04:00
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
.. note::
|
2016-05-02 18:28:35 -04:00
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
The MTU size should be less than or equal to the MTU size allowed on the
|
|
|
|
|
network interfaces of the host machine. If the MTU size allowed on the
|
|
|
|
|
network interfaces of the host machine is 1500 then this step can be
|
|
|
|
|
skipped. This step is relevant for building containers. Actual openstack
|
|
|
|
|
services won't be affected.
|
2016-05-02 18:28:35 -04:00
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
.. note::
|
2016-05-02 18:28:35 -04:00
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
Verify that the MountFlags parameter is configured as shared. If you do not
|
|
|
|
|
set the MountFlags option correctly then kolla-ansible will fail to deploy the
|
|
|
|
|
neutron-dhcp-agent container and throws APIError/HTTPError.
|
2016-05-02 18:28:35 -04:00
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
Restart Docker and ensure that Docker is running.
|
2016-05-02 18:28:35 -04:00
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
::
|
|
|
|
|
|
|
|
|
|
systemctl daemon-reload
|
|
|
|
|
systemctl restart docker
|
2015-08-21 02:05:23 -07:00
|
|
|
|
|
|
|
|
|
The Kolla community builds and pushes tested images for each tagged release of
|
2017-03-19 22:54:27 -04:00
|
|
|
|
Kolla. Pull required images with appropriate tags.
|
2017-01-27 18:52:04 +00:00
|
|
|
|
|
|
|
|
|
::
|
2015-08-24 05:00:25 -05:00
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
kolla-ansible pull
|
2016-05-02 18:28:35 -04:00
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
View the images.
|
2015-08-21 02:05:23 -07:00
|
|
|
|
|
|
|
|
|
::
|
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
docker images
|
|
|
|
|
|
2017-02-15 12:17:12 +08:00
|
|
|
|
Developers running from master are required to build container images as the
|
2017-03-19 22:54:27 -04:00
|
|
|
|
Docker Hub does not contain built images for the master branch. Reference the
|
2017-02-15 12:17:12 +08:00
|
|
|
|
`Building Container Images`_ for more advanced build configuration.
|
2015-08-21 02:05:23 -07:00
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
To build images using default parameters run:
|
2015-11-02 20:38:54 +03:00
|
|
|
|
|
|
|
|
|
::
|
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
kolla-build
|
2015-11-02 20:38:54 +03:00
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
By default kolla-build will build all containers using CentOS as the base image
|
|
|
|
|
and binary installation as base installation method. To change this behavior,
|
|
|
|
|
please use the following parameters with kolla-build:
|
2015-11-09 12:13:12 -07:00
|
|
|
|
|
|
|
|
|
::
|
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
--base [ubuntu|centos|oraclelinux]
|
|
|
|
|
--type [binary|source]
|
2015-11-09 12:13:12 -07:00
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
.. note::
|
2015-11-09 12:13:12 -07:00
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
--base and --type can be added to the above kolla-build command if
|
|
|
|
|
different distributions or types are desired.
|
|
|
|
|
|
|
|
|
|
It is also possible to build individual container images. As an example, if the
|
|
|
|
|
glance images failed to build, all glance related images can be rebuilt as
|
|
|
|
|
follows:
|
2015-09-03 22:24:22 -07:00
|
|
|
|
|
|
|
|
|
::
|
|
|
|
|
|
2015-11-03 17:25:02 +03:00
|
|
|
|
kolla-build glance
|
2015-03-31 18:37:20 -07:00
|
|
|
|
|
2015-11-02 20:38:54 +03:00
|
|
|
|
In order to see all available parameters, run:
|
|
|
|
|
|
|
|
|
|
::
|
|
|
|
|
|
2015-11-03 17:25:02 +03:00
|
|
|
|
kolla-build -h
|
2015-11-02 20:38:54 +03:00
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
View the images.
|
|
|
|
|
|
|
|
|
|
::
|
|
|
|
|
|
|
|
|
|
docker images
|
2016-05-25 13:57:23 +02:00
|
|
|
|
|
2016-11-02 09:49:00 +00:00
|
|
|
|
.. WARNING::
|
|
|
|
|
Mixing of OpenStack releases with Kolla releases (example, updating
|
|
|
|
|
kolla-build.conf to build Mitaka Keystone to be deployed with Newton Kolla) is
|
|
|
|
|
not recommended and will likely cause issues.
|
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
Deploy Kolla
|
|
|
|
|
============
|
2016-05-02 18:28:35 -04:00
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
Kolla-Ansible is used to deploy containers by using images built by Kolla.
|
|
|
|
|
There are two methods of deployment: *all-in-one* and *multinode*. The
|
|
|
|
|
*all-in-one* deployment is similar to `devstack
|
|
|
|
|
<http://docs.openstack.org/developer/devstack/>`__ deploy which installs all
|
|
|
|
|
OpenStack services on a single host. In the *multinode* deployment, OpenStack
|
|
|
|
|
services can be run on specific hosts. This documentation describes deploying
|
2017-03-22 11:05:35 +00:00
|
|
|
|
an *all-in-one* setup. To setup *multinode* see the
|
|
|
|
|
`Multinode Deployment of Kolla <https://docs.openstack.org/project-deploy-guide/kolla-ansible/ocata/multinode.html>`_.
|
2015-03-16 10:27:03 -04:00
|
|
|
|
|
2017-04-14 11:31:08 +09:00
|
|
|
|
.. note::
|
|
|
|
|
|
|
|
|
|
For *multinode* deployment of kolla, check if all the hostnames are
|
|
|
|
|
resolvable. RabbitMQ can't work with IP addresses, so we need to make
|
|
|
|
|
sure that all RabbitMQ cluster hosts can resolve each other's hostnames.
|
|
|
|
|
|
2015-11-05 01:32:33 -07:00
|
|
|
|
Each method is represented as an Ansible inventory file. More information on
|
|
|
|
|
the Ansible inventory file can be found in the Ansible `inventory introduction
|
2017-03-22 11:05:35 +00:00
|
|
|
|
<https://docs.ansible.com/intro_inventory.html>`_.
|
2015-03-16 10:27:03 -04:00
|
|
|
|
|
2015-11-03 17:25:02 +03:00
|
|
|
|
All variables for the environment can be specified in the files:
|
2016-05-17 08:44:47 +05:30
|
|
|
|
``/etc/kolla/globals.yml`` and ``/etc/kolla/passwords.yml``.
|
2015-11-02 20:38:54 +03:00
|
|
|
|
|
2016-05-17 08:44:47 +05:30
|
|
|
|
Generate passwords for ``/etc/kolla/passwords.yml`` using the provided
|
2016-05-27 08:09:56 -04:00
|
|
|
|
``kolla-genpwd`` tool. The tool will populate all empty fields in the
|
2016-05-17 08:44:47 +05:30
|
|
|
|
``/etc/kolla/passwords.yml`` file using randomly generated values to secure the
|
2016-05-27 08:09:56 -04:00
|
|
|
|
deployment. Optionally, the passwords may be populate in the file by hand.
|
2016-03-16 21:45:25 +00:00
|
|
|
|
|
|
|
|
|
::
|
|
|
|
|
|
|
|
|
|
kolla-genpwd
|
|
|
|
|
|
2016-05-27 08:09:56 -04:00
|
|
|
|
Start by editing ``/etc/kolla/globals.yml``. Check and edit, if needed, these
|
2017-01-27 18:52:04 +00:00
|
|
|
|
parameters: ``kolla_base_distro``, ``kolla_install_type``. The default for
|
2016-08-04 15:09:10 +02:00
|
|
|
|
``kolla_base_distro`` is ``centos`` and for ``kolla_install_type`` is
|
|
|
|
|
``binary``. If you want to use ubuntu with source type, then you should make
|
2017-01-27 18:52:04 +00:00
|
|
|
|
sure globals.yml has the following entries:
|
2016-03-31 09:48:43 -04:00
|
|
|
|
|
|
|
|
|
::
|
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
kolla_base_distro: "ubuntu"
|
|
|
|
|
kolla_install_type: "source"
|
2015-11-02 20:38:54 +03:00
|
|
|
|
|
2016-02-26 01:02:25 +00:00
|
|
|
|
Please specify an unused IP address in the network to act as a VIP for
|
2016-05-27 08:09:56 -04:00
|
|
|
|
``kolla_internal_vip_address``. The VIP will be used with keepalived and added
|
2017-01-27 18:52:04 +00:00
|
|
|
|
to the ``api_interface`` as specified in the ``globals.yml``
|
2015-11-09 12:13:12 -07:00
|
|
|
|
|
|
|
|
|
::
|
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
kolla_internal_vip_address: “192.168.137.79”
|
2015-11-09 12:13:12 -07:00
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
.. note::
|
2016-05-17 08:44:47 +05:30
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
The kolla_internal_vip_address must be unique and should belong to the same
|
|
|
|
|
network to which the first network interface belongs to.
|
2016-02-22 11:30:56 -08:00
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
.. note::
|
2016-02-22 11:30:56 -08:00
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
The kolla_base_distro and kolla_install_type should be same as base and
|
|
|
|
|
install_type used in kolla-build command line.
|
2016-06-24 11:03:54 +08:00
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
The ``network_interface`` variable is the interface to which Kolla binds API
|
|
|
|
|
services. For example, when starting Mariadb, it will bind to the IP on the
|
|
|
|
|
interface list in the ``network_interface`` variable.
|
2016-02-22 21:56:26 +00:00
|
|
|
|
|
|
|
|
|
::
|
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
network_interface: "ens3"
|
2016-02-22 21:56:26 +00:00
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
The ``neutron_external_interface`` variable is the interface that will be used
|
|
|
|
|
for the external bridge in Neutron. Without this bridge the deployment instance
|
|
|
|
|
traffic will be unable to access the rest of the Internet.
|
2015-11-02 20:38:54 +03:00
|
|
|
|
|
|
|
|
|
::
|
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
neutron_external_interface: "ens4"
|
2016-03-21 13:01:25 -03:00
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
In case of deployment using the **nested** environment (eg. Using Virtualbox
|
|
|
|
|
VM’s, KVM VM’s), verify if your compute node supports hardware acceleration for
|
|
|
|
|
virtual machines by executing the following command in the *compute node*.
|
2016-03-21 13:01:25 -03:00
|
|
|
|
|
|
|
|
|
::
|
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
egrep -c '(vmx|svm)' /proc/cpuinfo
|
2016-03-21 13:01:25 -03:00
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
If this command returns a value of **zero**, your compute node does not support
|
|
|
|
|
hardware acceleration and you **must** configure libvirt to use **QEMU**
|
|
|
|
|
instead of KVM. Create a file /etc/kolla/config/nova/nova-compute.conf and add
|
|
|
|
|
the content shown below.
|
2016-03-21 13:01:25 -03:00
|
|
|
|
|
|
|
|
|
::
|
|
|
|
|
|
2017-04-25 16:39:35 +02:00
|
|
|
|
mkdir -p /etc/kolla/config/nova
|
2017-01-27 18:52:04 +00:00
|
|
|
|
cat << EOF > /etc/kolla/config/nova/nova-compute.conf
|
2016-03-21 13:01:25 -03:00
|
|
|
|
[libvirt]
|
2017-02-22 23:47:06 +08:00
|
|
|
|
virt_type = qemu
|
2017-03-13 15:49:35 +00:00
|
|
|
|
cpu_mode = none
|
2017-01-27 18:52:04 +00:00
|
|
|
|
EOF
|
2016-03-21 13:01:25 -03:00
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
For *all-in-one* deployments, the following commands can be run. These will
|
|
|
|
|
setup all of the containers on the localhost. These commands will be
|
|
|
|
|
wrapped in the kolla-script in the future.
|
2016-02-22 08:31:34 -07:00
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
.. note:: Even for all-in-one installs it is possible to use the Docker
|
|
|
|
|
registry for deployment, although not strictly required.
|
2016-02-22 08:31:34 -07:00
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
First, validate that the deployment targets are in a state where Kolla may
|
|
|
|
|
deploy to them. Provide the correct path to inventory file in the following
|
|
|
|
|
commands.
|
2016-02-22 08:31:34 -07:00
|
|
|
|
|
|
|
|
|
::
|
2016-03-09 00:58:23 -05:00
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
kolla-ansible prechecks -i /path/to/all-in-one
|
2016-02-22 08:31:34 -07:00
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
Deploy OpenStack.
|
2016-02-22 08:31:34 -07:00
|
|
|
|
|
|
|
|
|
::
|
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
kolla-ansible deploy -i /path/to/all-in-one
|
2016-02-22 08:31:34 -07:00
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
List the running containers.
|
2015-03-16 10:27:03 -04:00
|
|
|
|
|
2015-08-20 23:06:10 -07:00
|
|
|
|
::
|
|
|
|
|
|
2015-09-28 05:47:55 +00:00
|
|
|
|
docker ps -a
|
2015-08-21 02:05:23 -07:00
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
Generate the ``admin-openrc.sh`` file. The file will be created in
|
|
|
|
|
``/etc/kolla/`` directory.
|
2015-03-16 10:27:03 -04:00
|
|
|
|
|
2015-08-20 23:06:10 -07:00
|
|
|
|
::
|
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
kolla-ansible post-deploy
|
2015-08-21 02:05:23 -07:00
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
To test your deployment, run the following commands to initialize the network
|
|
|
|
|
with a glance image and neutron networks.
|
2015-08-21 02:05:23 -07:00
|
|
|
|
|
|
|
|
|
::
|
2015-08-28 01:38:42 +00:00
|
|
|
|
|
2017-02-22 23:47:06 +08:00
|
|
|
|
. /etc/kolla/admin-openrc.sh
|
2015-08-20 23:06:10 -07:00
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
#centOS
|
2017-02-22 17:47:29 +08:00
|
|
|
|
cd /usr/share/kolla-ansible
|
2017-01-27 18:52:04 +00:00
|
|
|
|
./init-runonce
|
2016-04-06 15:34:55 -07:00
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
#ubuntu
|
2017-02-22 17:47:29 +08:00
|
|
|
|
cd /usr/local/share/kolla-ansible
|
2017-01-27 18:52:04 +00:00
|
|
|
|
./init-runonce
|
2016-04-06 15:34:55 -07:00
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
.. note::
|
2016-04-06 15:34:55 -07:00
|
|
|
|
|
2017-05-17 18:09:09 -05:00
|
|
|
|
Different hardware results in variance with deployment times.
|
2016-04-06 15:34:55 -07:00
|
|
|
|
|
2017-01-27 18:52:04 +00:00
|
|
|
|
After successful deployment of OpenStack, the Horizon dashboard will be
|
|
|
|
|
available by entering IP address or hostname from ``kolla_external_fqdn``, or
|
|
|
|
|
``kolla_internal_fqdn``. If these variables were not set during deploy they
|
|
|
|
|
default to ``kolla_internal_vip_address``.
|
2016-05-02 18:28:35 -04:00
|
|
|
|
|
2016-06-14 12:32:50 +05:30
|
|
|
|
.. _Docker Hub Image Registry: https://hub.docker.com/u/kolla/
|
2016-05-17 08:44:47 +05:30
|
|
|
|
.. _launchpad bug: https://bugs.launchpad.net/kolla/+filebug
|
2017-02-02 19:29:57 +00:00
|
|
|
|
.. _Building Container Images: http://docs.openstack.org/developer/kolla/image-building.html
|