4.4 Example Setup for an Initial Deployment

The following is an example of how to set up an initial OpenStack deployment which is enabled for high availability. In this example:

  • The default groups are used: control, compute, database, network, and storage.

  • The deployment contains six nodes, four compute nodes, and the other two nodes run all other services.

  • The deployment uses the default Oracle Container Registry as the Docker registry. This example assumes you have already created and verified that you have an account on the Oracle Container Registry and you have already accepted the Oracle Standard Terms and Restrictions for the Oracle software images.

  • High availability is enabled because there are at least two nodes for each group.

  • You want to deploy all the OpenStack services that are enabled by default except the Murano service, and you want to deploy the Ceilometer and Aodh services, which are not enabled by default.

  • All nodes are connected to the management/API network using the em1 network interface.

  • The virtual IP address on the management/API network is 192.0.2.20.

  • All the network nodes are connected to the public network using the em2 network interface.

Example deployment steps:

  1. On the master node, log in as a user that is a member of the kolla group.

  2. Add the target nodes to the deployment.

    $ kollacli host add control1.example.com
    $ kollacli host add control2.example.com
    $ kollacli host add compute1.example.com
    $ kollacli host add compute2.example.com
    $ kollacli host add compute3.example.com
    $ kollacli host add compute4.example.com
  3. Check that the target nodes are added.

    $ kollacli host list
    +----------------------+--------+
    | Host                 | Groups |
    +----------------------+--------+
    | compute1.example.com | []     |
    | compute2.example.com | []     |
    | compute3.example.com | []     |
    | compute4.example.com | []     |
    | control1.example.com | []     |
    | control2.example.com | []     |
    +----------------------+--------+
  4. Set up the kolla user on the target nodes.

    $ kollacli host setup control1.example.com
    root password for control1.example.com: 
    Starting setup of host (control1.example.com).
    Host (control1.example.com) setup succeeded.
    
    $ kollacli host setup control2.example.com
    ...
    $ kollacli host setup compute1.example.com
    ...
    $ kollacli host setup compute2.example.com
    ...
    $ kollacli host setup compute3.example.com
    ...
    $ kollacli host setup compute4.example.com
    ...
  5. Check that the kolla user is set up correctly on the target nodes.

    $ kollacli host check all
    Host (compute4.example.com): success
    Host (compute3.example.com): success
    Host (compute2.example.com): success
    Host (compute1.example.com): success
    Host (control2.example.com): success
    Host (control1.example.com): success
  6. Assign target nodes to each group.

    $ kollacli group addhost control control1.example.com
    $ kollacli group addhost control control2.example.com
    
    $ kollacli group addhost database control1.example.com
    $ kollacli group addhost database control2.example.com
    
    $ kollacli group addhost network control1.example.com
    $ kollacli group addhost network control2.example.com
    
    $ kollacli group addhost storage control1.example.com
    $ kollacli group addhost storage control2.example.com
    
    $ kollacli group addhost compute compute1.example.com
    $ kollacli group addhost compute compute2.example.com
    $ kollacli group addhost compute compute3.example.com
    $ kollacli group addhost compute compute4.example.com
    
  7. Check that the target nodes are assigned correctly.

    $ kollacli group listhosts
    +----------+------------------------------------------------------------------------+
    | Group    | Hosts                                                                  |
    +----------+------------------------------------------------------------------------+
    | compute  | ['compute1.example.com', 'compute2.example.com',                       |
    |          | 'compute3.example.com', 'compute4.example.com']                        |
    | control  | ['control1.example.com', 'control2.example.com']                       |
    | database | ['control1.example.com', 'control2.example.com']                       |
    | network  | ['control1.example.com', 'control2.example.com']                       |
    | storage  | ['control1.example.com', 'control2.example.com']                       |
    +----------+------------------------------------------------------------------------+
    
    $ kollacli host list
    +----------------------+-----------------------------------------------+
    | Host                 | Groups                                        |
    +----------------------+-----------------------------------------------+
    | compute1.example.com | ['compute']                                   |
    | compute2.example.com | ['compute']                                   |
    | compute3.example.com | ['compute']                                   |
    | compute4.example.com | ['compute']                                   |
    | control1.example.com | ['control', 'storage', 'network', 'database'] |
    | control2.example.com | ['control', 'storage', 'network', 'database'] |
    +----------------------+-----------------------------------------------+
    
  8. Enable the OpenStack services you want to deploy.

    For this example, you want to disable the Murano service, and enable the Ceilometer and Aodh services. When you enable Ceilometer, Aodh is enabled automatically by default.

    $ kollacli property set enable_murano no
    $ kollacli property set enable_ceilometer yes
  9. Check that the correct services are enabled.

    $ kollacli property list
    +-----+------------------------------------------+------------------------------------------+
    | OVR | Property Name                            | Property Value                           |
    +-----+------------------------------------------+------------------------------------------+
    ...
    | *-- | enable_ceilometer                        | yes                                      |
    | --- | enable_cinder                            | yes                                      |
    ...
    | --- | enable_glance                            | yes                                      |
    ...
    | --- | enable_haproxy                           | yes                                      |
    | --- | enable_heat                              | yes                                      |
    ...
    | --- | enable_horizon                           | yes                                      |
    | --- | enable_keystone                          | yes                                      |
    ...
    | --- | enable_memcached                         | yes                                      |
    | *-- | enable_murano                            | no                                       |
    ...
    | --- | enable_mysqlcluster                      | yes                                      |
    ...
    | --- | enable_neutron                           | yes                                      |
    ...
    | --- | enable_nova                              | yes                                      |
    ...
    | --- | enable_rabbitmq                          | yes                                      |
    | --- | enable_swift                             | no                                       |
    ...
    +-----+------------------------------------------+------------------------------------------+
    
  10. Configure the passwords for all services.

    In this example, the kollacli password init is used to automatically configure all passwords.

    $ kollacli password init
  11. Configure the deployment by setting properties.

    The default property values are sufficient, so you only need to configure the network properties.

    $ kollacli property set kolla_internal_vip_address 192.0.2.20
    $ kollacli property set network_interface em1
    $ kollacli property set neutron_external_interface em2
  12. Set the user name and password to use for the Oracle Container Registry.

    $ kollacli property set docker_registry_username email@example.com
    $ kollacli password set docker_registry_password
    Password:
  13. Check that the properties are set.

    $ kollacli property list
    +-----+------------------------------------------+------------------------------------------+
    | OVR | Property Name                            | Property Value                           |
    +-----+------------------------------------------+------------------------------------------+
    ...
    | *-- | docker_registry                          | container-registry.oracle.com            |
    | *-- | docker_registry_username                 | email@example.com                        |
    ...
    | *-- | kolla_internal_vip_address               | 192.0.2.20                               |
    ...
    | *-- | network_interface                        | em1                                      |
    ...
    | *-- | neutron_external_interface               | em2                                      |
    ...
    +-----+------------------------------------------+------------------------------------------+