This is an almost complete rewrite of the installation script, mainly directed to allow installation of Rally also from unprivileged users, but also adding a few more options and checks. More in details, the script now: * can run as unprivileged user. * support different database types * allow to specify custom python binary * always asks confirmation before doing potentially dangerous actions (removing directories or installing software) * automatically install needed software if run as root * this script is self-sufficient: it automatically downloads Rally from the git if needed * if interrupted, cleans up the virtualenv and/or the downloaded repository Co-Authored-By: Antonio Messina <antonio.s.messina@gmail.com> Co-Authored-By: Sergey Skripnick <sskripnick@mirantis.com> Change-Id: I574d4fd7cc7c8e71720a6a5ff8db22ee4fd4fc81 Closes-bug: #1393887
5.9 KiB
Installation
Automated installation
The easiest way to install Rally is by executing its installation script
wget -q -O- https://raw.githubusercontent.com/openstack/rally/master/install_rally.sh | bash
# or using curl
curl https://raw.githubusercontent.com/openstack/rally/master/install_rally.sh | bash
The installation script will also check if all the software required by Rally is already installed in your system; if run as root user and some dependency is missing it will ask you if you want to install the required packages.
By default it will install Rally in a virtualenv in
~/rally
when ran as standard user, or install system wide
when ran as root. You can install Rally in a venv by using the option
--target
:
./install_rally.sh --target /foo/bar
You can also install Rally system wide by running script as root and
without --target
option:
sudo ./install_rally.sh
Run ./install_rally.sh
with option --help
to have a list of all available options:
$ ./install_rally.sh --help
Usage: install_rally.sh [options]
This script will install rally either in the system (as root) or in a virtual environment.
Options:
-h, --help Print this help text
-v, --verbose Verbose mode
-s, --system Instead of creating a virtualenv, install as
system package.
-d, --target DIRECTORY Install Rally virtual environment into DIRECTORY.
(Default: $HOME/rally).
-f, --overwrite Remove target directory if it already exists.
-y, --yes Do not ask for confirmation: assume a 'yes' reply
to every question.
-D, --dbtype TYPE Select the database type. TYPE can be one of
'sqlite', 'mysql', 'postgres'.
Default: sqlite
--db-user USER Database user to use. Only used when --dbtype
is either 'mysql' or 'postgres'.
--db-password PASSWORD Password of the database user. Only used when
--dbtype is either 'mysql' or 'postgres'.
--db-host HOST Database host. Only used when --dbtype is
either 'mysql' or 'postgres'
--db-name NAME Name of the database. Only used when --dbtype is
either 'mysql' or 'postgres'
-p, --python EXE The python interpreter to use. Default: /usr/bin/python.
Notes: the script will check if all the software required by Rally is already installed in your system. If this is not the case, it will exit, suggesting you the command to issue as root in order to install the dependencies.
You also have to set up the Rally database after the installation is complete:
rally-manage db recreate
Rally with DevStack all-in-one installation
It is also possible to install Rally with DevStack. First, clone the corresponding repositories:
git clone https://git.openstack.org/openstack-dev/devstack
git clone https://github.com/openstack/rally
Then, configure DevStack to run Rally:
cp rally/contrib/devstack/lib/rally devstack/lib/
cp rally/contrib/devstack/extras.d/70-rally.sh devstack/extras.d/
cd devstack
echo "enable_service rally" >> localrc
Finally, run DevStack as usually:
./stack.sh
Rally & Docker
First you need to install docker. Installing docker in ubuntu may be done by following:
$ sudo apt-get update
$ sudo apt-get install docker.io
$ sudo usermod -a -G docker `id -u -n` # add yourself to docker group
NOTE: re-login is required to apply users groups changes and actually use docker.
Pull docker image with rally:
$ docker pull rallyforge/rally
Or you may want to build rally image from source:
# first cd to rally source root dir
docker build -t myrally .
Since rally stores local settings in user's home dir and the database in /var/lib/rally/database, you may want to keep this directories outside of container. This may be done by the following steps:
cd
mkdir rally_home
sudo chown 65500 rally_home
docker run -t -i -v ~/rally_home:/home/rally rallyforge/rally
You may want to save last command as an alias:
echo 'alias dock_rally="docker run -t -i -v ~/rally_home:/home/rally rallyforge/rally"' >> ~/.bashrc
After executing dock_rally
alias, or
docker run
you got bash running inside container with rally
installed. You may do anytnig with rally, but you need to create db
first:
user@box:~/rally$ dock_rally
rally@1cc98e0b5941:~$ rally-manage db recreate
rally@1cc98e0b5941:~$ rally deployment list
There are no deployments. To create a new deployment, use:
rally deployment create
rally@1cc98e0b5941:~$
More about docker: https://www.docker.com/