Merge pull request #31 from ceph/wip-5941

Instructions for installing teuthology on non-debian-based OSs
This commit is contained in:
Zack Cerza 2013-08-14 09:36:55 -07:00
commit 9b947e2726
3 changed files with 79 additions and 26 deletions

View File

@ -23,6 +23,16 @@ perform actions concurrently or in the background.
Build Build
===== =====
``teuthology`` is not meant to be distributed as a library, therefore we depend
on the pinned dependencies listed in ``requirements.txt``, the ``setup.py``
will not list any and will only be there to install the package entry points
(a.k.a teuthology's scripts).
``bootstrap`` for Ubuntu Systems
--------------------------------
A ``boostrap`` script is provided for automated builds/execution of teuthology
itself. You can run it directly **only if you are using Ubuntu**.
Teuthology uses several Python packages that are not in the standard Teuthology uses several Python packages that are not in the standard
library. To make the dependencies easier to get right, we use a library. To make the dependencies easier to get right, we use a
@ -35,9 +45,65 @@ and then run::
./bootstrap ./bootstrap
You can run Teuthology's internal unit tests with::
./virtualenv/bin/nosetests osx
---
.. note:: These instructions assume you are using `homebrew <http://brew.sh/>`_
As always, create a ``virtualenv`` specific to ``teuthology`` and make sure it
is activated before proceeding (location doesn't matter, we use an example
location)::
mkdir ~/.virtualenvs
virtualenv ~/.virtualenvs/teuthology
source ~/.virtualenvs/teuthology/bin/activate
Install the system dependencies::
brew install libvirt mysql libevent
``libvirt`` does not link the python bindings so you need to do this step
manually::
$ cd /Library/Python/{pyversion}/site-packages
$ sudo ln -s /usr/local/Cellar/libvirt/{version}/lib/python{pyversion}/site-packages/* .
Make sure you are able to import ``libvirt`` without error::
python -c "import libvirt"
Finally, install the teuthology package and ``requirements.txt``::
$ python setup.py develop
$ pip install -r requirements.txt
Generic install
---------------
These instructions should help get ``teuthology`` installed properly in
a system that is not OSX or Debian-based.
Install all the system dependencies needed:
* mysql client
* libevent
* libvirt (with the Python bindings)
Install Python packaging tools:
* pip
* virtualenv
In some cases, depending on the OS, you will need a python development package
with some build helpers that are required to build packages. In Ubuntu, this is
the ``python-dev`` package.
With a dedicated ``virtualenv`` activated, install the teuthology package and
``requirements.txt``::
$ python setup.py develop
$ pip install -r requirements.txt
Test configuration Test configuration

View File

@ -1,18 +1,18 @@
# 0.14 switches to libev, that means bootstrap needs to change too # 0.14 switches to libev, that means bootstrap needs to change too
gevent ==0.13.6 gevent == 0.13.6
# 1.7.7 has AES-128-CBC support for SSH keys, that's needed # 1.7.7 has AES-128-CBC support for SSH keys, that's needed
paramiko >=1.7.7 MySQL-python == 1.2.3
configobj
PyYAML PyYAML
bunch >=1.0.0 argparse >= 1.2.1
argparse >=1.2.1 beanstalkc >= 0.2.0
boto >= 2.0b4
bunch >= 1.0.0
configobj
httplib2 httplib2
beanstalkc >=0.2.0 paramiko >= 1.7.7
boto >=2.0b4
pexpect pexpect
requests ==0.14.0 requests == 0.14.0
MySQL-python ==1.2.3
# Test Dependencies # Test Dependencies
nose >=1.0.0 # nose >=1.0.0
fudge >=1.0.3 # fudge >=1.0.3

View File

@ -1,4 +1,3 @@
#!/usr/bin/python
from setuptools import setup, find_packages from setuptools import setup, find_packages
setup( setup(
@ -12,18 +11,6 @@ setup(
license='MIT', license='MIT',
keywords='ceph testing ssh cluster', keywords='ceph testing ssh cluster',
install_requires=[
'gevent ==0.13.6',
'paramiko >=1.7.7',
'configobj',
'PyYAML',
'bunch >=1.0.0',
'argparse >=1.2.1',
'httplib2',
'beanstalkc >=0.2.0',
'pexpect',
],
# to find the code associated with entry point # to find the code associated with entry point
# A.B:foo first cd into directory A, open file B # A.B:foo first cd into directory A, open file B
# and find sub foo # and find sub foo