Merge "Rework documentaton to actually get people rolling"
This commit is contained in:
commit
7552de144b
@ -1,24 +1,42 @@
|
|||||||
Developer Environment
|
Quickstart to Deploying OpenStack using Ansible
|
||||||
=====================
|
===============================================
|
||||||
|
|
||||||
If you are developing Kolla on an existing OpenStack cloud that supports
|
Evaluation and Developer Environments
|
||||||
Heat, then follow the Heat template
|
-------------------------------------
|
||||||
`README <https://github.com/stackforge/kolla/blob/master/devenv/README.md>`__.
|
|
||||||
Another option available on systems with VirutalBox is the use of
|
|
||||||
`Vagrant <https://github.com/stackforge/kolla/blob/master/docs/vagrant.md>`__.
|
|
||||||
|
|
||||||
The best experience is available with bare metal deployment by following
|
Two virtualized evaluation and development environment options are
|
||||||
the instructions below to manually create your Kolla deployment.
|
available. These options permit the evaluation of Kolla without
|
||||||
|
disrupting the host operating system.
|
||||||
|
|
||||||
|
If developing or evaluating Kolla on an OpenStack cloud environment that
|
||||||
|
supports Heat, follow the
|
||||||
|
`Heat evaluation and developer environment guide <https://github.com/stackforge/kolla/blob/master/docs/devenv-heat.rst>`__.
|
||||||
|
|
||||||
|
If developing or evaluating Kolla on a system that provides VirtualBox,
|
||||||
|
Vagrant may be used and is documented in the
|
||||||
|
`Vagrant evaluation and developer environment guide <https://github.com/stackforge/kolla/blob/master/docs/devenv-vagrant.rst>`__.
|
||||||
|
|
||||||
|
If evaluating or deploying OpenStack on bare-metal with Kolla, follow the
|
||||||
|
instructions in this document to get started.
|
||||||
|
|
||||||
Installing Dependencies
|
Installing Dependencies
|
||||||
-----------------------
|
-----------------------
|
||||||
|
|
||||||
NB: Kolla will not run on Fedora 22 or later. Fedora 22 compresses
|
Kolla will not run on Fedora 22 or later currently. Fedora 22 compresses
|
||||||
kernel modules with the .xz compressed format. The guestfs system cannot
|
kernel modules with the .xz compressed format. The guestfs system in the
|
||||||
read these images because a dependent package supermin in CentOS needs
|
CentOS family of containers cannot read these images because a dependent
|
||||||
to be updated to add .xz compressed format support.
|
package supermin in CentOS needs to be updated to add .xz compressed format
|
||||||
|
support.
|
||||||
|
|
||||||
To install Kolla depenedencies use:
|
On the deployment host Ansible>=1.8.4 must be installed and is the only
|
||||||
|
requirement for deploying OpenStack. To build the Docker container images
|
||||||
|
locally the dependnencies docker>=1.7.0 and the Python libraries
|
||||||
|
docker-py>=1.2.0 and Jinja2>=2.6 must be installed.
|
||||||
|
|
||||||
|
The deployment targt nodes require the installation of docker>=1.7.0 and
|
||||||
|
docker-py>=1.2.0.
|
||||||
|
|
||||||
|
To install Kolla Python depenedencies use:
|
||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
@ -26,67 +44,132 @@ To install Kolla depenedencies use:
|
|||||||
cd kolla
|
cd kolla
|
||||||
sudo pip install -r requirements.txt
|
sudo pip install -r requirements.txt
|
||||||
|
|
||||||
In order to run Kolla, it is mandatory to run a version of ``docker``
|
Since Docker is required to build images as well as be present on all deployed
|
||||||
that is 1.7.0 or later.
|
targets, the Kolla community recommends installing the Docker Inc. packaged
|
||||||
|
version of Docker for maximum stability and compatiblity with the following
|
||||||
For most systems you can install the latest stable version of Docker
|
command:
|
||||||
with the following command:
|
|
||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
curl -sSL https://get.docker.io | bash
|
curl -sSL https://get.docker.io | bash
|
||||||
|
|
||||||
For Ubuntu based systems, do not use AUFS when starting Docker daemon
|
For Ubuntu based systems where Docker is used, do not use AUFS when starting
|
||||||
unless you are running the Utopic (3.19) kernel. AUFS requires
|
Docker daemon unless you are running the Utopic (3.19) kernel. AUFS requires
|
||||||
CONFIG\_AUFS\_XATTR=y set when building the kernel. On Ubuntu, versions
|
CONFIG\_AUFS\_XATTR=y set when building the kernel. On Ubuntu, versions
|
||||||
prior to 3.19 did not set that flag. If you are unable to upgrade your
|
prior to 3.19 did not set this flag to be compatible with Docker. If unable
|
||||||
kernel, you should use a different storage backend such as btrfs.
|
to upgrade the kernel, the Kolla community recommends using a different storage
|
||||||
|
backend such as btrfs.
|
||||||
|
|
||||||
Next, install the OpenStack python clients if they are not installed:
|
On the system where the OpenStack CLI/Python code is run, the Kolla community
|
||||||
|
recommends installing the OpenStack python clients if they are not installed.
|
||||||
|
This could be a completely different machine then the deployment host or
|
||||||
|
deployment targets. To install these clients use:
|
||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
sudo pip install -U python-openstackclient
|
sudo pip install -U python-openstackclient
|
||||||
|
|
||||||
Finally stop libvirt on the host machine. Only one copy of libvirt may
|
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.
|
be running at a time.
|
||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
|
service libvirtd disable
|
||||||
service libvirtd stop
|
service libvirtd stop
|
||||||
|
|
||||||
The basic starting environment will be created using ``ansible``. This
|
Kolla deploys OpenStack using
|
||||||
environment will start up the OpenStack services listed in the inventory
|
`Ansible <https://ansible.com>`__. Install Ansible from distribution
|
||||||
file.
|
packaging if the distro packaging has 1.8.4 or greater available. Currently
|
||||||
|
Ubuntu's version of Ansible is too old to use from packaging. On RPM
|
||||||
|
based systems install from packaging using:
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
yum -y install ansible
|
||||||
|
|
||||||
|
On DEB based systems this can be done using:
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
apt-get install ansible
|
||||||
|
|
||||||
|
If the distro packaged version of Ansible is too old, install Ansible using
|
||||||
|
pip:
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
pip install -U ansible
|
||||||
|
|
||||||
|
Buildling Container Images
|
||||||
|
--------------------------
|
||||||
|
|
||||||
|
The Kolla community does not currently generate new images for each commit
|
||||||
|
to the repository. The push time for a full image build to the docker registry
|
||||||
|
is about 5 hours on 100mbit Internet, so there are technical limitations to
|
||||||
|
using the Docker Hub registry with our current OpenStack CI/CD systems.
|
||||||
|
|
||||||
|
The Kolla community builds and pushes tested images for each tagged release of
|
||||||
|
Kolla, but if running from master, it is recommended to build images locally.
|
||||||
|
All Docker images can be built as follows:
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
tools/build.py -T 1000
|
||||||
|
|
||||||
|
The -T option specifies how many threads to run concurrently. A docker build
|
||||||
|
of all containers on Xeon hardware with SSDs and 100mbit network takes roughly
|
||||||
|
15 minutes. The CentOS mirrors are flakey and the RDO delorean repository is
|
||||||
|
not mirrored at all. As a result occasionally some containers will fail to
|
||||||
|
build. If something important fails to bulid, repeat the entire build process
|
||||||
|
again. The Kolla community recognizes this is not ideal and the Kolla
|
||||||
|
community is adding an individual container build option to solve this
|
||||||
|
particular problem.
|
||||||
|
|
||||||
Starting Kolla
|
Starting Kolla
|
||||||
--------------
|
--------------
|
||||||
|
|
||||||
Configure Ansible by reading the Kolla
|
Configure Ansible by reading the
|
||||||
`Ansible configuration <https://github.com/stackforge/kolla/blob/master/docs/ansible-deployment.md>`__ documentation.
|
`Kolla Ansible configuration Guide <https://github.com/stackforge/kolla/blob/master/docs/ansible-deployment.md>`__ documentation.
|
||||||
|
|
||||||
Next, run the start command:
|
Finally, run the deploy operation:
|
||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
$ sudo ./tools/kolla-ansible deploy
|
$ sudo ./tools/kolla-ansible deploy
|
||||||
|
|
||||||
A bare metal system takes three minutes to deploy AIO. A virtual machine
|
A bare metal system takes three minutes to deploy AIO. A virtual machine
|
||||||
takes five minutes to deploy AIO. These are estimates; your hardware may
|
deployment takes five minutes to deploy AIO. These are estimates; different
|
||||||
be faster or slower but should near these results.
|
hardware may be faster or slower but should be near these results.
|
||||||
|
|
||||||
Debugging Kolla
|
Debugging Kolla
|
||||||
---------------
|
---------------
|
||||||
|
|
||||||
You can determine a container's status by executing:
|
The container's status can be determined on the deployment targets by
|
||||||
|
executing:
|
||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
$ sudo docker ps -a
|
$ docker ps -a
|
||||||
|
|
||||||
If any of the containers exited you can check the logs by executing:
|
If any of the containers exited, this indicates a bug in the container. Please
|
||||||
|
seek help by filing a bug or contacting the developers via IRC.
|
||||||
|
|
||||||
|
the logs can be examined by executing:
|
||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
$ sudo docker logs <container-name>
|
$ docker logs <container-name>
|
||||||
|
|
||||||
|
Note some of the containers don't log to stdout at present so the above
|
||||||
|
command will provide no information. Instead they log to files
|
||||||
|
in _/var_/log_/_<service_> inside the container. The Kolla community is
|
||||||
|
working to improve auditing and make things more consistent. The Kolla
|
||||||
|
community expects this work to complete by Liberty rc1. An example of
|
||||||
|
reading the logs for nova-api:
|
||||||
|
|
||||||
|
::
|
||||||
|
$ docker exec -t nova_api more /var/log/nova/nova-api.log
|
||||||
|
|
||||||
|
Note reading the logs via an exec operation can only be done if the
|
||||||
|
container is running.
|
||||||
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 25 KiB |
Loading…
x
Reference in New Issue
Block a user