5.1 Performing a Deployment

Before you deploy OpenStack services, ensure that you have set up your deployment, as described in Chapter 4, Setting up a Deployment.

  1. Ensure that the Docker Engine is running on the target nodes.

    To check that the Docker Engine is running:

    $ systemctl status docker.service
    ● docker.service - Docker Application Container Engine
       Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
      Drop-In: /etc/systemd/system/docker.service.d
               └─docker-sysconfig.conf, var-lib-docker-mount.conf
       Active: inactive (dead) since Tue 2016-03-29 13:20:53 BST; 2min 35s ago
    ...

    If the output of this command shows the status of the Docker service to be inactive (dead), start the Docker Engine:

    # systemctl start docker.service
  2. On the master node, log in as a user that is a member of the kolla group.

    You add users to the kolla group as part of setting up a master node, see Section 3.6, “Preparing a Master Node”.

    You deploy OpenStack services with the kollacli command, and you must be a member of the kolla group to use this command.

  3. (Optional) Check that the target nodes are configured correctly and ready for the deployment.

    $ kollacli host check all --predeploy

    This command is only suitable for an initial deployment. Do not use this command if OpenStack services have already been deployed.

    If you are adding nodes to a deployment and they are currently not running any OpenStack services, you can check the nodes individually.

    $ kollacli host check host --predeploy

    where host is the fully qualified domain name or IP address of the node.

    The checks verify:

    • The openstack-kolla-preinstall package version and the Docker Engine version.

    • The required ports are available.

    • The Docker service is running and that the libvirtd service is not running.

    • The LVM volume group named cinder-volumes exists on storage nodes that use the LVM driver for Cinder volumes (the default).

    • The number of controller nodes (there must be a minimum of two).

    If the check indicates a problem (you do not see a Success message), fix the problem before performing the deployment.

  4. Deploy OpenStack services to the target nodes.

    Use the kollacli deploy command to deploy services.

    To deploy all enabled OpenStack services to all hosts:

    $ kollacli deploy

    Use this command to use to perform an initial deployment.

    You can control the deployment by specifying the groups, services or hosts that you want to deploy:

    • To deploy all enabled OpenStack services in the control group to all hosts in the control group:

      $ kollacli deploy --groups control
    • To deploy OpenStack services to selected hosts, the services that are deployed are controlled by the groups the individual hosts are assigned to:

      $ kollacli deploy --hosts compute1.example.com,compute2.example.com
    • To deploy selected services to all hosts in the control group:

      $ kollacli deploy --services mysqlcluster,neutron,keystone --groups control
    • To deploy selected services, the groups the services belong to control the hosts that run the services:

      $ kollacli deploy --services heat,murano

    You can also deploy services serially (one host at a time). In a high availability environment, this is useful for updating existing services without interrupting them.

    • To deploy all enabled services in the network and storage groups serially to all hosts in the network and storage groups:

      $ kollacli deploy --serial --groups network,storage
    • Deploying all services serially to selected hosts, the services that are deployed are controlled by the groups that the individual hosts are assigned to:

      $ kollacli deploy --serial --hosts compute1.example.com,compute2.example.com

    If the deployment fails, see Chapter 7, Troubleshooting Deployment.