Install via Kolla Ansible

Note

This installation guide is explaining about Tacker. Other components, such as nova or neutron, are not covered here.

Note

This installation guide contents are specific to Redhat distro.

Please refer to Install dependencies of Kolla Ansible installation 1 to set up the docker environment that is used by Kolla Ansible.

To install via Kolla Ansible, the version of Kolla Ansible should be consistent with the target Tacker system. For example, stable/ussuri branch of Kolla Ansible should be used to install stable/ussuri branch of Tacker. Here the stable/ussuri branch version will be used to show how to install Tacker with Kolla Ansible.

Kolla can be used to install multiple nodes system, but Tacker server is not ready for multiple nodes deployment yet, so only an all-in-one Tacker is installed in this document.

Install Kolla Ansible

  1. Get the stable/ussuri version of Kolla Ansible:

    $ git clone https://github.com/openstack/kolla-ansible.git -b stable/ussuri
    $ cd kolla-ansible
    $ sudo dnf install python3-devel libffi-devel gcc openssl-devel python3-libselinux
    $ sudo pip3 install -r requirements.txt
    $ sudo python3 setup.py install
    

    If the needed version has already been published at pypi site ‘https://pypi.org/project/kolla-ansible’, the command below can be used:

    $ sudo pip install "kolla-ansible==5.0.0"
    
  2. Install dependencies:

    $ sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    $ sudo dnf install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm
    $ sudo dnf install docker-ce docker-ce-cli
    $ sudo systemctl enable docker
    $ sudo systemctl restart docker
    $ sudo pip3 install 'ansible<2.10'
    $ sudo pip3 install docker
    

    Note

    Installing docker-ce on CentOS 8 is not officially supported.

Install Tacker

  1. Edit Kolla Ansible’s configuration file /etc/kolla/globals.yml:

    ---
    kolla_install_type: "source"
    # openstack_release can be determined by version of kolla-ansible tool.
    # But if needed, it can be specified.
    #openstack_release: 5.0.0
    kolla_internal_vip_address: <one IP address of local nic interface>
    # The Public address used to communicate with OpenStack as set in the
    # public_url for the endpoints that will be created. This DNS name
    # should map to kolla_external_vip_address.
    #kolla_external_fqdn: "{{ kolla_external_vip_address }}"
    # define your own registry if needed
    #docker_registry: "127.0.0.1:4000"
    # If needed OpenStack kolla images are published, docker_namespace should be
    # kolla
    docker_namespace: "kolla"
    #docker_namespace: "gongysh"
    enable_glance: "no"
    enable_haproxy: "no"
    enable_keystone: "yes"
    enable_mariadb: "yes"
    enable_memcached: "yes"
    enable_neutron: "no"
    enable_nova: "no"
    enable_barbican: "yes"
    enable_mistral: "yes"
    enable_tacker: "yes"
    enable_heat: "no"
    enable_openvswitch: "no"
    enable_horizon: "yes"
    enable_horizon_tacker: "{{ enable_tacker | bool }}"
    

    Note

    To determine version of kolla-ansible, the following commandline can be used:

    $ python -c \
      "import pbr.version; print(pbr.version.VersionInfo('kolla-ansible'))"
    
  2. Run kolla-genpwd to generate system passwords:

    $ sudo cp etc/kolla/passwords.yml /etc/kolla/passwords.yml
    $ sudo kolla-genpwd
    

    Note

    If the pypi version is used to install kolla-ansible the skeleton passwords file maybe under /usr/share/kolla-ansible/etc_examples/kolla.

    With this command, /etc/kolla/passwords.yml will be populated with generated passwords.

  3. Run Kolla Ansible deploy to install tacker system:

    $ sudo kolla-ansible deploy
    
  4. Run Kolla Ansible post-deploy to generate tacker access environment file:

    $ sudo kolla-ansible post-deploy
    

    With this command, admin-openrc.sh will be generated at /etc/kolla/admin-openrc.sh.

  5. Check the related containers are started and running:

    Tacker system consists of some containers. Following is a sample output. The containers fluentd, cron and kolla_toolbox are from kolla, please see Kolla Ansible documentation for their usage. Others are from Tacker system components.

    $ sudo docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Names}}"
    CONTAINER ID        IMAGE                                                   NAMES
    756adb8d787f        kolla/centos-source-tacker-server:ussuri                tacker_server
    000320a1c76f        kolla/centos-source-tacker-conductor:ussuri             tacker_conductor
    11b5ccf91d86        kolla/centos-source-barbican-worker:ussuri              barbican_worker
    4a5224d14f36        kolla/centos-source-barbican-keystone-listener:ussuri   barbican_keystone_listener
    a169e7aed0b6        kolla/centos-source-barbican-api:ussuri                 barbican_api
    2b3b0341b562        kolla/centos-source-mistral-executor:ussuri             mistral_executor
    6c69bbdf6aea        kolla/centos-source-mistral-event-engine:ussuri         mistral_event_engine
    d035295fe9f0        kolla/centos-source-mistral-engine:ussuri               mistral_engine
    72f52de2fb77        kolla/centos-source-mistral-api:ussuri                  mistral_api
    07ecaad80542        kolla/centos-source-horizon:ussuri                      horizon
    7e6ac94ea505        kolla/centos-source-keystone:ussuri                     keystone
    2b16b169ed18        kolla/centos-source-keystone-fernet:ussuri              keystone_fernet
    ec80b37da07b        kolla/centos-source-keystone-ssh:ussuri                 keystone_ssh
    3e3d5c976921        kolla/centos-source-rabbitmq:ussuri                     rabbitmq
    24196bca6652        kolla/centos-source-memcached:ussuri                    memcached
    73f9873b1eac        kolla/centos-source-mariadb-clustercheck:ussuri         mariadb_clustercheck
    ceb67bd5418d        kolla/centos-source-mariadb:ussuri                      mariadb
    b82404a0400e        kolla/centos-source-chrony:ussuri                       chrony
    f70ab08ea36d        kolla/centos-source-cron:ussuri                         cron
    5bbe7eee05d4        kolla/centos-source-kolla-toolbox:ussuri                kolla_toolbox
    be73c1b5fdca        kolla/centos-source-fluentd:ussuri                      fluentd
    
  6. Install tacker client:

    $ sudo pip3 install python-tackerclient
    $ sudo pip3 install python-openstackclient
    
  7. Check the Tacker server is running well:

    $ sudo cat /etc/kolla/admin-openrc.sh > /tmp/admin-openrc.sh
    $ . /tmp/admin-openrc.sh
    $ openstack vim list