Skip to content

SUSE/teuthology-deploy

Repository files navigation

Deploy teuthology instance

Install prerequisites

Install jq binary

zypper install -f jq

Install terraform from the page: https://www.terraform.io/downloads.html

Version 0.12+ required

For example, if you are on SUSE based distro you could do next:

zypper install terraform

Get the source code and change directory into its root.

git clone https://github.com/SUSE/teuthology-deploy
cd teuthology-deploy

Setup virtual environment with python dependencies:

virtualenv v
. v/bin/activate
pip install --upgrade pip
pip install ansible==2.8.4 python-openstackclient

Clone ceph-cm-ansible of required fork and branch

git clone https://github.com/SUSE/ceph-cm-ansible -b suse

(Note: At moment of writing the SUSE ceph-cm-ansible is required to be used in order to setup teuthology on openSUSE based distro since his corresponding patches in 'suse' branch. The 'master' branch is supposed to be equivalent to the upstream one.)

The user should have access to /usr/sbin/dnssec-keygen in order to make keys for nameserver, for example it can be found in system package 'bind-utils' in openSUSE distros.

sudo zypper in bind-utils

Create deployment config

Copy stub yaml files to configs

cp teuthology-vars.yml.orig teuthology-vars.yml
cp conf/teuthology.cfg.orig conf/teuthology.cfg
cp libcloud/ovh.cfg.orig libcloud/ovh.cfg

and modify correspondingly openstack credentials for libcloud and tweak teuthology config.

(As an option you can use --conf argument to point to presaved teuthology.cfg explicitly.)

Your system should have 'cloud' based access to your openstack and must have corresponding config to the once in 'terraform' directory. So, add ovh, sbg, nbg, etc. data to ~/.config/openstack/clouds.yaml.

Deploy teuthology cluster

Deploy cluster with named and nsupdate_web setup on teuthology server in ovh.

OS_CLOUD=ovh ./deploy-teuthology --rebuild --ns

To have more than one cluster per region or project, specify unique name for the cluster:

OS_CLOUD=ovh ./deploy-teuthology --rebuild --ns --name $USER

If you need more workers and target machines, use corresponding arguments:

OS_CLOUD=ovh ./deploy-teuthology --rebuild --ns --workers 8 --targets 50

Cleanup cluster:

OS_CLOUD=ovh ./deploy-teuthology --cleanup

Using several configs at once

Copy conf/teuthology.cfg.orig to something distrinct, for example, conf/foo.cfg. Copy teuthology-vars.yml.orig to something specific, like teuthology-foo.yml.

And use TEUTH_CONF and TEUTH_VARS correspondingly:

export TEUTH_CONF=conf/foo.cfg
export TEUTH_VARS=teuthology-foo.yml
./deploy-teuthology --cloud ovh --ns --rebuild

NOTE: Due to HMAC-MD5 being depricated on Tumbleweed dnssec key generation was temporarily moved from deploy-teuthology.sh to teuthology_nameserver ansible role and dnssec_keygen task