The current Tacker implementation does not support PostgreSQL, and differences between the MySQL and PostgreSQL implementations can cause errors in practice. This patch implements PostgreSQL support through Tacker and tacker-db-manage. Note that UT/FT is not added because conventional tests can cover this patch. Implements: blueprint support-multidb-backend Change-Id: Ide07befdb26f6b173d1185fe0dbcf59f8f3dbf81
7.2 KiB
Install via Devstack
Overview
Devstack based installation requires local.conf
file.
This file contains different configuration options required for
installation.
Tacker provides some sample local.conf
templates which
can be used for Devstack based Tacker installation. You can find them in
${TACKER_ROOT}/devstack
directory in the tacker
repository.
Devstack supports installation from different code branches by
specifying branch name in your local.conf
.
- For latest version installation, use
master
branch. - For specific release based installation, use corresponding branch
name. For ex, to install
wallaby
release, usestable/wallaby
.
For installation, stack.sh
script in Devstack should be
run as a non-root user with sudo enabled. Add a separate user
stack
and granting relevant privileges is a good way to
install via Devstack1.
Hardware Requirements
We recommend that your system meets the following hardware requirements:
Note
These are reference values to install
Openstack and Kubernetes as VIM
which generally requires
the most resources. In reality, more parameters affect required
resources.
Criteria | Recommended |
---|---|
CPU | 4 cores or more |
RAM | 16 GB or more |
Storage | 80 GB or more |
Note
We recommend that you run DevStack in a VM, rather than on your bare-metal server. If you have to run devstack on a bare-metal server, It is recommended to use a server that has at least two network interfaces2.
Install
Devstack installation script stack.sh
expects
local.conf
.
So the first step of installing tacker is to clone Devstack and
prepare your local.conf
.
Download DevStack
Get Devstack via git, with specific branch optionally if you prefer, and go down to the directory.
$ git clone https://opendev.org/openstack/devstack -b <branch-name> $ cd devstack
Enable tacker related Devstack plugins in
local.conf
fileThe
local.conf
can be created manually, or copied from Tacker repo3. If copied, rename it aslocal.conf
.We have two choices for configuration basically:
All-in-one mode
All-in-one mode installs full Devstack environment including Tacker in one PC or Laptop.
There are two examples for
all-in-one
mode:OpenStack as VIM.
The example
local.conf
file for all-in-one mode with OpenStack is available at${TACKER_ROOT}/devstack/local.conf.example
.Refer below the contents of
local.conf.example
:../../../devstack/local.conf.example
Openstack and Kubernetes as VIM.
The difference between all-in-one mode with Kubernetes is to deploy kuryr-kubernetes and octavia.
The example
local.conf
for all-in-one mode with Kubernetes is available at${TACKER_ROOT}/devstack/local.conf.kubernetes
Refer below the contents of
local.conf.kubernetes
../../../devstack/local.conf.kubernetes
Note
The above local.conf.kubernetes does not work on CentOS8. Because docker-ce is not supported on CentOS8.
Standalone mode
Standalone mode installs only Tacker environment with some mandatory OpenStack services. Nova, Neutron or other essential components are not included in this mode.
The example
local.conf
for standalone mode is available at${TACKER_ROOT}/devstack/local.conf.standalone
Refer below the contents of
local.conf.standalone
../../../devstack/local.conf.standalone
In CentOS environment install and start ovn services before executing stack.sh.
$ sudo yum install -y centos-release-openstack-victoria $ sudo yum install -y openvswitch $ sudo yum install -y openvswitch-ovn-common $ sudo yum install -y openvswitch-ovn-central $ sudo yum install -y openvswitch-ovn-host $ sudo systemctl start ovn-northd.service $ sudo systemctl start ovn-controller.service $ sudo systemctl start ovs-vswitchd.service $ sudo systemctl start ovsdb-server.service
Execute installation script
After saving the
local.conf
, we can runstack.sh
in the terminal to start installation.$ ./stack.sh
Use PostgreSQL as Tacker database
When installing via Devstack, MySQL is used as Tacker database backend by default.
To use PostgreSQL as Tacker database backend, execute the following command.
Install PostgreSQL and login.
$ sudo apt install postgresql postgresql-contrib $ sudo -i -u postgres $ psql
Create PostgreSQL database and user.
CREATE DATABASE tacker; CREATE ROLE tacker WITH CREATEDB LOGIN PASSWORD '<TACKERDB_PASSWORD>'; exit;
Modify
postgresql.conf
and restart PostgreSQL server.Note
The location of
postgresql.conf
is different for each distribution. For Ubuntu distribution, modify/etc/postgresql/{POSTGRESQL_VERSION}/main/postgresql.conf
.Insert
escape
as the value ofbytea_output
inpostgresql.conf
.bytea_output = 'escape'
Restart PostgreSQL server.
$ sudo service postgresql restart
Modify
tacker.conf
for PostgreSQL and restart Tacker server.Edit the configuration of [database] in
/etc/tacker/tacker.conf
as follows.[database] connection = postgresql://tacker:<POSTGRES_PASSWORD>@<POSTGRES_IP>/tacker?client_encoding=utf8
Restart Tacker server.
$ sudo systemctl restart devstack@tacker.service $ sudo systemctl restart devstack@tacker-conductor.service
Populate Tacker database.
$ /usr/local/bin/tacker-db-manage \ --config-file /etc/tacker/tacker.conf \ upgrade head
Footnotes