Home OpenStack-Ansible Installation Guide

Chapter 7. OpenStack playbooks

Figure 7.1. Installation work flow

../_images/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

  1. Change to the /opt/openstack-ansible/playbooks directory.

  2. Run the OpenStack setup playbook:

    # 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.

    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]
    <job 802849856578.7262> finished on target_host_heat_engine_container-36022446
    <job 802849856578.7739> finished on target_host_keystone_container-c6501516
    <job 802849856578.7262> finished on target_host_heat_apis_container-4e170279
    <job 802849856578.7359> finished on target_host_cinder_api_container-df5d5929
    <job 802849856578.7386> finished on target_host_cinder_volumes_container-ed58e14c
    <job 802849856578.7886> finished on target_host_horizon_container-e68b4f66
    <job 802849856578.7582> finished on target_host_nova_compute_container-7af962fe
    <job 802849856578.7604> finished on target_host_neutron_agents_container-08ec00cd
    <job 802849856578.7459> finished on target_host_neutron_server_container-94d370e5
    <job 802849856578.7327> finished on target_host_nova_api_metadata_container-600fe8b3
    <job 802849856578.7363> finished on target_host_glance_container-f2ebdc06
    <job 802849856578.7339> polling, 1675s remaining
    <job 802849856578.7338> polling, 1675s remaining
    <job 802849856578.7322> polling, 1675s remaining
    <job 802849856578.7319> 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.

    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]
    <job 409029926086.9909> finished on target_host_nova_api_os_compute_container-9fa0472b
    <job 409029926086.9890> finished on target_host_nova_api_ec2_container-6c928c30
    <job 409029926086.9910> finished on target_host_nova_conductor_container-2b495dc4
    <job 409029926086.9882> finished on target_host_nova_scheduler_container-c3febca2
    <job 409029926086.9898> finished on target_host_nova_api_metadata_container-600fe8b3
    <job 409029926086.8330> polling, 1775s remaining
    

    Confirm satisfactory completion with zero items unreachable or failed:

    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.

  1. Determine the utility container name:

    # lxc-ls | grep utility
    infra1_utility_container-161a4084
    
  2. Access the utility container:

    # lxc-attach -n infra1_utility_container-161a4084
    
  3. Source the admin tenant credentials:

    # source /root/openrc
    
  4. Run an OpenStack command that uses one or more APIs. For example:

    # 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

  1. 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.
  2. 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.


Table Of Contents

Previous topic

Chapter 6. Infrastructure playbooks

Next topic

Chapter 8. Operations

Project Source

This Page