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

  • 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 service, which is 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 10.0.0.20.

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

  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.

    All OpenStack services are enabled by default, apart from the Swift object storage and the Ceilometer telemetry services. In this example, you want to disable the Murano service and enable the Ceilometer service.

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

    $ kollacli password set database_password
    
    $ kollacli password set ceilometer_database_password
    $ kollacli password set ceilometer_keystone_password
    
    $ kollacli password set cinder_database_password
    $ kollacli password set cinder_keystone_password
    
    $ kollacli password set glance_database_password
    $ kollacli password set glance_keystone_password
    
    $ kollacli password set heat_database_password 
    $ kollacli password set heat_keystone_password 
    $ kollacli password set heat_domain_admin_password
    
    $ kollacli password set horizon_database_password
    
    $ kollacli password set keystone_admin_password
    $ kollacli password set keystone_database_password
    
    $ kollacli password set murano_database_password
    $ kollacli password set murano_keystone_password
    
    $ kollacli password set neutron_database_password
    $ kollacli password set neutron_keystone_password
    
    $ kollacli password set nova_database_password
    $ kollacli password set nova_keystone_password
    
    $ kollacli password set rabbitmq_password
    
    $ kollacli password set swift_keystone_password
  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 docker_registry registry.example.com:5000
    $ kollacli property set kolla_internal_address 10.0.0.20
    $ kollacli property set network_interface em1
    $ kollacli property set neutron_external_interface em2
  12. Check that the properties are set.

    $ kollacli property list --max-width 40
    +-----+------------------------------------------+------------------------------------------+
    | OVR | Property Name                            | Property Value                           |
    +-----+------------------------------------------+------------------------------------------+
    ...
    | --- | docker_registry                          | registry.example.com:5000                |
    ...
    | --- | kolla_internal_address                   | 10.0.0.20                                |
    ...
    | --- | network_interface                        | em1                                      |
    ...
    | --- | neutron_external_interface               | em2                                      |
    ...
    +-----+------------------------------------------+------------------------------------------+