mirror of
https://github.com/ceph/ceph
synced 2025-02-15 14:58:01 +00:00
Add lab setup doc
Signed-off-by: Zack Cerza <zack@redhat.com>
This commit is contained in:
parent
063ef06a6d
commit
f84662be7c
140
LAB_SETUP.rst
Normal file
140
LAB_SETUP.rst
Normal file
@ -0,0 +1,140 @@
|
||||
==========================
|
||||
Teuthology Lab Setup Notes
|
||||
==========================
|
||||
|
||||
Introduction
|
||||
============
|
||||
|
||||
We recently set up a new lab for Ceph testing and decided to document the parts of the process that are most relevant to teuthology. This is the result.
|
||||
|
||||
We started by setting aside two of the test machines: one as the 'teuthology node', and another as the 'paddles/pulpito node'. These would be used to orchestrate automated testing and to store and serve the results on our intranet.
|
||||
|
||||
paddles/pulpito node
|
||||
====================
|
||||
|
||||
We're currently running both paddles and pulpito on the same node. We have a proxy server up front listening on port 80 that forwards to the proper service based on which hostname is used. Feel free to modify our `paddles <docs/reference/nginx_paddles>`_ and `pulpito <docs/reference/nginx_pulpito>`_ configurations for your use.
|
||||
|
||||
Do the following as root or as another user with sudo access::
|
||||
|
||||
sudo apt-get install git python-dev python-virtualenv postgresql postgresql-contrib postgresql-server-dev-all supervisor
|
||||
sudo -u postgres createuser paddles -P
|
||||
sudo -u postgres createdb paddles
|
||||
|
||||
Create a separate user for paddles and puplito. We used 'paddles' and 'pulpito'.
|
||||
|
||||
|
||||
paddles
|
||||
-------
|
||||
Follow instructions at https://github.com/ceph/paddles/blob/master/README.rst
|
||||
|
||||
|
||||
pulpito
|
||||
-------
|
||||
Follow instructions at https://github.com/ceph/pulpito/blob/master/README.rst
|
||||
|
||||
|
||||
Starting up
|
||||
-----------
|
||||
|
||||
Back as the 'root or sudo' user::
|
||||
|
||||
sudo cp ~paddles/paddles/supervisord_paddles.conf /etc/supervisor/conf.d/paddles.conf
|
||||
sudo supervisorctl reread && sudo supervisorctl update paddles && sudo supervisorctl start paddles
|
||||
sudo cp ~pulpito/pulpito/supervisord_pulpito.conf /etc/supervisor/conf.d/pulpito.conf
|
||||
sudo supervisorctl reread && sudo supervisorctl update pulpito && sudo supervisorctl start pulpito
|
||||
|
||||
|
||||
Test Nodes
|
||||
==========
|
||||
|
||||
Each node needs to have a user named 'ubuntu' with passwordless sudo access.
|
||||
|
||||
It's also necessary to generate an ssh key pair that will be used to provide
|
||||
passwordless authentication to all the test nodes, and put the public key in
|
||||
``~/.ssh/authorized_keys`` on all the test nodes.
|
||||
|
||||
|
||||
Teuthology Node
|
||||
===============
|
||||
|
||||
Create an ``/etc/teuthology.yaml`` that looks like::
|
||||
|
||||
lab_domain: example.com
|
||||
lock_server: http://pulpito.example.com:8080
|
||||
results_server: http://pulpito.example.com:8080
|
||||
queue_host: localhost
|
||||
queue_port: 11300
|
||||
results_email: you@example.com
|
||||
archive_base: /home/teuthworker/archive
|
||||
|
||||
Do the following as root or as another user with sudo access:
|
||||
|
||||
Create two additional users: one that simply submits jobs to the queue, and
|
||||
another that picks them up from the queue and executes them. We use
|
||||
'teuthology' and 'teuthworker', respectively.
|
||||
|
||||
Give both users passwordless sudo access.
|
||||
|
||||
Copy the ssh key pair that you created to access the test nodes into each of
|
||||
these users' ``~/.ssh`` directory.
|
||||
|
||||
Install these packages::
|
||||
|
||||
sudo apt-get -y install git python-dev python-pip python-virtualenv libevent-dev python-libvirt beanstalkd
|
||||
|
||||
Now, set up the two users you just created:
|
||||
|
||||
|
||||
Scheduler
|
||||
---------
|
||||
As 'teuthology', do the following::
|
||||
|
||||
mkdir ~/src
|
||||
git clone https://github.com/ceph/teuthology.git src/teuthology_master
|
||||
pushd src/teuthology_master/
|
||||
./bootstrap
|
||||
popd
|
||||
|
||||
|
||||
Worker
|
||||
------
|
||||
As 'teuthworker', do the following::
|
||||
|
||||
mkdir ~/src
|
||||
git clone https://github.com/ceph/teuthology.git src/teuthology_master
|
||||
pushd src/teuthology_master/
|
||||
./bootstrap
|
||||
popd
|
||||
mkdir ~/bin
|
||||
wget -O ~/bin/worker_start https://raw.githubusercontent.com/ceph/teuthology/docs/docs/reference/worker_start.sh
|
||||
echo 'PATH="$HOME/src/teuthology_master/virtualenv/bin:$PATH"' >> ~/.profile
|
||||
source ~/.profile
|
||||
mkdir -p ~/archive/worker_logs
|
||||
worker_start magna 1
|
||||
|
||||
|
||||
Submitting Nodes
|
||||
================
|
||||
|
||||
First::
|
||||
|
||||
wget https://raw.githubusercontent.com/ceph/teuthology/docs/docs/reference/create_nodes.py
|
||||
|
||||
Edit ``create_nodes.py`` to generate the hostnames of the machines you want to submit to paddles.
|
||||
|
||||
Now to do the work::
|
||||
|
||||
python create_nodes.py
|
||||
teuthology-lock --owner initial@setup --list-targets > /tmp/targets
|
||||
teuthology --owner initial@setup /tmp/targets
|
||||
teuthology-lock --owner initial@setup --unlock -t /tmp/targets
|
||||
|
||||
|
||||
Serving Test Logs
|
||||
=================
|
||||
|
||||
pulpito tries to provide links to test logs. Out-of-the-box, those links will be broken, but are easy to fix.
|
||||
|
||||
First, install your favorite web server on the teuthology node. If you use nginx, you may use `our configuration <docs/reference/nginx_test_logs>`_ as a template.
|
||||
|
||||
Once you've got log files being served, edit paddles' ``config.py`` and update the ``job_log_href_templ`` value. Restart paddles when you're done.
|
Loading…
Reference in New Issue
Block a user