Manual Installation¶
This document describes how to install and run Tacker manually.
Note
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.
Pre-requisites¶
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.
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_IDENTITY_API_VERSION=3 export OS_REGION_NAME=RegionOne
Installing Tacker Server¶
Note
The <branch_name>
in command examples is replaced with specific branch
name, such as stable/ussuri
.
Create MySQL database and user.
$ mysql -uroot -p
Create database
tacker
and grant provileges fortacker
user with password<TACKERDB_PASSWORD>
on all tables.CREATE DATABASE tacker; GRANT ALL PRIVILEGES ON tacker.* TO 'tacker'@'localhost' \ IDENTIFIED BY '<TACKERDB_PASSWORD>'; GRANT ALL PRIVILEGES ON tacker.* TO 'tacker'@'%' \ IDENTIFIED BY '<TACKERDB_PASSWORD>'; exit;
Create OpenStack user, role and endpoint.
Set admin credentials to gain access to admin-only CLI commands.
$ . admin-openrc.sh
Create
tacker
user with admin privileges.$ openstack user create --domain default --password <PASSWORD> tacker $ openstack role add --project service --user tacker admin
Note
Project name can be
service
orservices
depending on your OpenStack distribution.Create
tacker
service.$ openstack service create --name tacker \ --description "Tacker Project" nfv-orchestration
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>
Clone tacker repository.
You can use
-b
for specific release optionally.$ cd ${HOME} $ git clone https://opendev.org/openstack/tacker.git -b <branch_name>
Install required packages and tacker itself.
$ cd ${HOME}/tacker $ sudo pip3 install -r requirements.txt $ sudo python3 setup.py install
Create directories for tacker.
Directories log, VNF packages and csar files are required.
$ sudo mkdir -p /var/log/tacker \ /var/lib/tacker/vnfpackages \ /var/lib/tacker/csar_files
Note
In case of multi node deployment, we recommend to configure
/var/lib/tacker/csar_files
on a shared storage.Generate the
tacker.conf.sample
usingtools/generate_config_file_sample.sh
ortox -e config-gen
command. Rename thetacker.conf.sample
file atetc/tacker/
totacker.conf
. Then edit it to ensure the below entries:Note
Ignore any warnings generated while using the “generate_config_file_sample.sh”.
Note
project_name can be “service” or “services” depending on your OpenStack distribution in the keystone_authtoken section.
Note
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:
[agent] root_helper = sudo /usr/bin/tacker-rootwrap /etc/tacker/rootwrap.conf
[DEFAULT] auth_strategy = keystone policy_file = /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 transport_url = rabbit://<RABBIT_USERID>:<RABBIT_PASSWORD>@<TACKER_NODE_IP>:5672/ ... [nfvo_vim] vim_drivers = openstack [keystone_authtoken] memcached_servers = <TACKER_NODE_IP>:11211 region_name = RegionOne auth_type = password project_domain_name = <DOMAIN_NAME> user_domain_name = <DOMAIN_NAME> username = <TACKER_USER_NAME> project_name = service password = <TACKER_SERVICE_USER_PASSWORD> auth_url = http://<KEYSTONE_IP>:5000 www_authenticate_uri = http://<KEYSTONE_IP>:5000 ... [agent] root_helper = sudo /usr/local/bin/tacker-rootwrap /etc/tacker/rootwrap.conf ... [database] connection = mysql+pymysql://tacker:<TACKERDB_PASSWORD>@<MYSQL_IP>:3306/tacker?charset=utf8 ... [tacker] monitor_driver = ping,http_ping
Copy the
tacker.conf
to/etc/tacker/
directory.$ sudo cp etc/tacker/tacker.conf /etc/tacker/
Populate Tacker database.
$ /usr/local/bin/tacker-db-manage \ --config-file /etc/tacker/tacker.conf \ upgrade head
To make tacker be controlled from systemd, copy
tacker.service
andtacker-conductor.service
file to/etc/systemd/system/
directory, and restartsystemctl
daemon.$ sudo cp etc/systemd/system/tacker.service /etc/systemd/system/ $ sudo cp etc/systemd/system/tacker-conductor.service /etc/systemd/system/ $ sudo systemctl daemon-reload
Install Tacker Client¶
Clone
tacker-client
repository.$ cd ~/ $ git clone https://opendev.org/openstack/python-tackerclient.git -b <branch_name>
Install
tacker-client
.$ cd ${HOME}/python-tackerclient $ sudo python3 setup.py install
Install Tacker horizon¶
Clone
tacker-horizon
repository.$ cd ~/ $ git clone https://opendev.org/openstack/tacker-horizon.git -b <branch_name>
Install horizon module.
$ cd ${HOME}/tacker-horizon $ sudo python3 setup.py install
Enable tacker horizon in dashboard.
$ sudo cp tacker_horizon/enabled/* \ /usr/share/openstack-dashboard/openstack_dashboard/enabled/
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 systemctl start tacker.service
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 systemctl start tacker-conductor.service