`Home `_ OpenStack-Ansible Installation Guide
==============================
Chapter 7. OpenStack playbooks
==============================
**Figure 7.1. Installation work flow**
.. image:: figures/workflow-openstackplaybooks.png
The main Ansible OpenStack playbook installs OpenStack services and
performs the following operations:
- Install common components
- Create a utility container that provides utilities to interact with
services in other containers
- Install Identity (keystone)
- Generate service IDs for all services
- Install the Image service (glance)
- Install Orchestration (heat)
- Install Compute (nova)
- Install Networking (neutron)
- Install Block Storage (cinder)
- Install Dashboard (horizon)
- Reconfigure Rsyslog
Running the OpenStack playbook
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#. Change to the ``/opt/openstack-ansible/playbooks`` directory.
#. Run the OpenStack setup playbook:
.. code-block:: shell-session
# openstack-ansible setup-openstack.yml
The ``openstack-common.yml`` sub-playbook builds all OpenStack services
from source and takes up to 30 minutes to complete. As the playbook
progresses, the quantity of containers in the polling state
approaches zero. If any operations take longer than 30 minutes to
complete, the playbook terminates with an error.
.. code-block:: shell-session
changed: [target_host_glance_container-f2ebdc06]
changed: [target_host_heat_engine_container-36022446]
changed: [target_host_neutron_agents_container-08ec00cd]
changed: [target_host_heat_apis_container-4e170279]
changed: [target_host_keystone_container-c6501516]
changed: [target_host_neutron_server_container-94d370e5]
changed: [target_host_nova_api_metadata_container-600fe8b3]
changed: [target_host_nova_compute_container-7af962fe]
changed: [target_host_cinder_api_container-df5d5929]
changed: [target_host_cinder_volumes_container-ed58e14c]
changed: [target_host_horizon_container-e68b4f66]
finished on target_host_heat_engine_container-36022446
finished on target_host_keystone_container-c6501516
finished on target_host_heat_apis_container-4e170279
finished on target_host_cinder_api_container-df5d5929
finished on target_host_cinder_volumes_container-ed58e14c
finished on target_host_horizon_container-e68b4f66
finished on target_host_nova_compute_container-7af962fe
finished on target_host_neutron_agents_container-08ec00cd
finished on target_host_neutron_server_container-94d370e5
finished on target_host_nova_api_metadata_container-600fe8b3
finished on target_host_glance_container-f2ebdc06
polling, 1675s remaining
polling, 1675s remaining
polling, 1675s remaining
polling, 1675s remaining
Setting up the compute hosts takes up to another 30 minutes to
complete, particularly in environments with many compute hosts. If
any operations take longer than 30 minutes to complete, the playbook
terminates with an error.
.. code-block:: shell-session
ok: [target_host_nova_conductor_container-2b495dc4]
ok: [target_host_nova_api_metadata_container-600fe8b3]
ok: [target_host_nova_api_ec2_container-6c928c30]
ok: [target_host_nova_scheduler_container-c3febca2]
ok: [target_host_nova_api_os_compute_container-9fa0472b]
finished on target_host_nova_api_os_compute_container-9fa0472b
finished on target_host_nova_api_ec2_container-6c928c30
finished on target_host_nova_conductor_container-2b495dc4
finished on target_host_nova_scheduler_container-c3febca2
finished on target_host_nova_api_metadata_container-600fe8b3
polling, 1775s remaining
Confirm satisfactory completion with zero items unreachable or
failed:
.. code-block:: shell-session
PLAY RECAP **********************************************************************
...
deployment_host : ok=44 changed=11 unreachable=0 failed=0
Utility container
~~~~~~~~~~~~~~~~~
The utility container provides a space where miscellaneous tools and
software are installed. Tools and objects are placed in a
utility container if they do not require a dedicated container or if it
is impractical to create a new container for a single tool or object.
Utility containers are also used when tools cannot be installed
directly onto a host.
For example, the tempest playbooks are installed on the utility
container since tempest testing does not need a container of its own.
Verifying OpenStack operation
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Verify basic operation of the OpenStack API and dashboard.
**Procedure 8.1. Verifying the API**
The utility container provides a CLI environment for additional
configuration and testing.
#. Determine the utility container name:
.. code-block:: shell-session
# lxc-ls | grep utility
infra1_utility_container-161a4084
#. Access the utility container:
.. code-block:: shell-session
# lxc-attach -n infra1_utility_container-161a4084
#. Source the ``admin`` tenant credentials:
.. code-block:: shell-session
# source /root/openrc
#. Run an OpenStack command that uses one or more APIs. For example:
.. code-block:: shell-session
# openstack user list
+----------------------------------+--------------------+
| ID | Name |
+----------------------------------+--------------------+
| 08fe5eeeae314d578bba0e47e7884f3a | alt_demo |
| 0aa10040555e47c09a30d2240e474467 | dispersion |
| 10d028f9e47b4d1c868410c977abc3df | glance |
| 249f9ad93c024f739a17ca30a96ff8ee | demo |
| 39c07b47ee8a47bc9f9214dca4435461 | swift |
| 3e88edbf46534173bc4fd8895fa4c364 | cinder |
| 41bef7daf95a4e72af0986ec0583c5f4 | neutron |
| 4f89276ee4304a3d825d07b5de0f4306 | admin |
| 943a97a249894e72887aae9976ca8a5e | nova |
| ab4f0be01dd04170965677e53833e3c3 | stack_domain_admin |
| ac74be67a0564722b847f54357c10b29 | heat |
| b6b1d5e76bc543cda645fa8e778dff01 | ceilometer |
| dc001a09283a404191ff48eb41f0ffc4 | aodh |
| e59e4379730b41209f036bbeac51b181 | keystone |
+----------------------------------+--------------------+
**Procedure 8.2. Verifying the dashboard**
#. With a web browser, access the dashboard using the external load
balancer IP address defined by the ``external_lb_vip_address`` option
in the ``/etc/openstack_deploy/openstack_user_config.yml`` file. The
dashboard uses HTTPS on port 443.
#. Authenticate using the username ``admin`` and password defined by the
``keystone_auth_admin_password`` option in the
``/etc/openstack_deploy/user_variables.yml`` file.
.. note::
Only users with administrator privileges can upload public images
using the dashboard or CLI.
--------------
.. include:: navigation.txt