Tacker: ETSI MANO NFV Orchestrator / VNF Manager. See https://wiki.openstack.org/wiki/Tacker
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

9.2 KiB

Manual Installation

This document describes how to install and run Tacker manually.


User is supposed to install on Ubuntu. Some examples are invalid on other distirbutions. For example, you should replace /usr/local/bin/ with /usr/bin/ on CentOS.


  1. Install required components.

    Ensure that OpenStack components, Keystone, Mistral, Barbican and Horizon are installed. Refer the list below for installation of these OpenStack projects on different Operating Systems.

  2. Create admin-openrc.sh for env variables.

    export OS_PROJECT_DOMAIN_NAME=Default
    export OS_USER_DOMAIN_NAME=Default
    export OS_PROJECT_NAME=admin
    export OS_TENANT_NAME=admin
    export OS_USERNAME=admin
    export OS_PASSWORD=KTskN5eUMTpeHLKorRcZBBbH0AM96wdvgQhwENxY
    export OS_AUTH_URL=http://localhost:5000/identity
    export OS_INTERFACE=internal
    export OS_REGION_NAME=RegionOne

Installing Tacker Server


The <branch_name> in command examples is replaced with specific branch name, such as stable/ussuri.

  1. Create MySQL database and user.

    $ mysql -uroot -p

    Create database tacker and grant provileges for tacker user with password <TACKERDB_PASSWORD> on all tables.

    GRANT ALL PRIVILEGES ON tacker.* TO 'tacker'@'localhost' \
    GRANT ALL PRIVILEGES ON tacker.* TO 'tacker'@'%' \
  2. Create OpenStack user, role and endpoint.

    1. Set admin credentials to gain access to admin-only CLI commands.

      $ . admin-openrc.sh
    2. Create tacker user with admin privileges.

      $ openstack user create --domain default --password <PASSWORD> tacker
      $ openstack role add --project service --user tacker admin


      Project name can be service or services depending on your OpenStack distribution.

    3. Create tacker service.

      $ openstack service create --name tacker \
          --description "Tacker Project" nfv-orchestration
    4. Provide an endpoint to tacker service.

      For keystone v3:

      $ openstack endpoint create --region RegionOne nfv-orchestration \
                 public http://<TACKER_NODE_IP>:9890/
      $ openstack endpoint create --region RegionOne nfv-orchestration \
                 internal http://<TACKER_NODE_IP>:9890/
      $ openstack endpoint create --region RegionOne nfv-orchestration \
                 admin http://<TACKER_NODE_IP>:9890/

      Or keystone v2:

      $ openstack endpoint create --region RegionOne \
           --publicurl 'http://<TACKER_NODE_IP>:9890/' \
           --adminurl 'http://<TACKER_NODE_IP>:9890/' \
           --internalurl 'http://<TACKER_NODE_IP>:9890/' <SERVICE-ID>
  3. Clone tacker repository.

    You can use -b for specific release optionally.

    $ cd ${HOME}
    $ git clone https://opendev.org/openstack/tacker.git -b <branch_name>
  4. Install required packages and tacker itself.

    $ cd ${HOME}/tacker
    $ sudo pip3 install -r requirements.txt
    $ sudo python3 setup.py install
  5. Create directories for tacker.

    Directories log, VNF packages and csar files are required.

    $ sudo mkdir -p /var/log/tacker \
        /var/lib/tacker/vnfpackages \


    In case of multi node deployment, we recommend to configure /var/lib/tacker/csar_files on a shared storage.

  6. Generate the tacker.conf.sample using tools/generate_config_file_sample.sh or tox -e config-gen command. Rename the tacker.conf.sample file at etc/tacker/ to tacker.conf. Then edit it to ensure the below entries:


    Ignore any warnings generated while using the "generate_config_file_sample.sh".


    project_name can be "service" or "services" depending on your OpenStack distribution in the keystone_authtoken section.


    The path of tacker-rootwrap varies according to the operating system, e.g. it is /usr/bin/tacker-rootwrap for CentOS, therefore the configuration for [agent] should be like:

    root_helper = sudo /usr/bin/tacker-rootwrap /usr/local/etc/tacker/rootwrap.conf
    auth_strategy = keystone
    policy_file = /usr/local/etc/tacker/policy.json
    debug = True
    use_syslog = False
    bind_host = <TACKER_NODE_IP>
    bind_port = 9890
    service_plugins = nfvo,vnfm
    state_path = /var/lib/tacker
    vim_drivers = openstack
    memcached_servers = 11211
    region_name = RegionOne
    auth_type = password
    project_domain_name = <DOMAIN_NAME>
    user_domain_name = <DOMAIN_NAME>
    username = <TACKER_USER_NAME>
    project_name = service
    auth_url = http://<KEYSTONE_IP>:5000
    www_authenticate_uri = http://<KEYSTONE_IP>:5000
    root_helper = sudo /usr/local/bin/tacker-rootwrap /usr/local/etc/tacker/rootwrap.conf
    connection = mysql+pymysql://tacker:<TACKERDB_PASSWORD>@<MYSQL_IP>:3306/tacker?charset=utf8
    monitor_driver = ping,http_ping
  7. Copy the tacker.conf to /usr/local/etc/tacker/ directory.

    $ sudo su
    $ cp etc/tacker/tacker.conf /usr/local/etc/tacker/
  8. Populate Tacker database.

    $ /usr/local/bin/tacker-db-manage \
        --config-file /usr/local/etc/tacker/tacker.conf \
        upgrade head
  9. To make tacker be controlled from systemd, copy tacker.service and tacker-conductor.service file to /etc/systemd/system/ directory, and restart systemctl daemon.

    $ sudo su
    $ cp etc/systemd/system/tacker.service /etc/systemd/system/
    $ cp etc/systemd/system/tacker-conductor.service /etc/systemd/system/
    $ systemctl daemon-reload

Install Tacker Client

  1. Clone tacker-client repository.

    $ cd ~/
    $ git clone https://opendev.org/openstack/python-tackerclient.git -b <branch_name>
  2. Install tacker-client.

    $ cd ${HOME}/python-tackerclient
    $ sudo python3 setup.py install

Install Tacker horizon

  1. Clone tacker-horizon repository.

    $ cd ~/
    $ git clone https://opendev.org/openstack/tacker-horizon.git -b <branch_name>
  2. Install horizon module.

    $ cd ${HOME}/tacker-horizon
    $ sudo python3 setup.py install
  3. Enable tacker horizon in dashboard.

    $ sudo cp tacker_horizon/enabled/* \
  4. Restart Apache server.

    $ sudo service apache2 restart

Starting Tacker server

Open a new console and launch tacker-server. A separate terminal is required because the console will be locked by a running process.

$ sudo python3 /usr/local/bin/tacker-server \
    --config-file /usr/local/etc/tacker/tacker.conf \
    --log-file /var/log/tacker/tacker.log

Starting Tacker conductor

Open a new console and launch tacker-conductor. A separate terminal is required because the console will be locked by a running process.

$ sudo python /usr/local/bin/tacker-conductor \
    --config-file /usr/local/etc/tacker/tacker.conf \
    --log-file /var/log/tacker/tacker-conductor.log