As part of Google Summer of Code 2013 work, Ganeti Web Manager gained better internal structure and important feature, which is being a Python package.
This will ensure that future users of Ganeti Web Manager can install it easily with Python
What’s even more important is that we created an installation script for your convenience.
Take a look at installation instructions to see how you should install Ganeti Web Manager.
setup.sh script can be located in the
scripts/ folder at the root of
the Ganeti Web Manager project folder.
What this script does:
- Detects operating system (only Ubuntu, Debian and CentOS are supported) and it’s architecture.
- Installs system dependencies (Python,
python-virtualenv) via user’s OS default package manager (
- Creates virtual environment in local directory (or in directory specified by user).
- Installs newest
wheelPython packages into that virtual environment.
- Installs Ganeti Web Manager and it’s dependencies from OSUOSL servers
(http://ftp.osuosl.org/pub/osl/ganeti-webmgr/) into that virtual
These packages are provided as
.whlpackages, ie. binary compiled packages. That helps speeding up installation time and requires no compilation on end user’s side.
If you happen to have different operating system from these
supported by OSUOSL, you should not
.whl packages from OSUOSL servers. They’re compiled against
these specific operating systems and their behavior on other systems /
architectures might by unpredictable.
This script does not auto-configure your installation. You have to manually do this.
Depending on your operating system, different packages are needed for different database servers.
libmysqlclient18on Ubuntu/Debian, or
libpq5on Ubuntu/Debian, or
These dependencies are required for
packages to work.
The script will get appropriate packages for you, unless you use
For more information, take a look at Command line arguments.
Command line arguments¶
Directory for the virtual environment.
<wheels (local/remote) directory location>¶
Wheel packages are read from that path. The path can be either local (eg.
./gwm/wheels) or remote (eg.
This also assumes the directory structure for the wheels package is structured according to how the Dependencies building script structures files.
Don’t change it unless you know what you’re doing!
If you provide
mysql, the script will try to install system and Python dependencies for selected database, unless
-Nflag is set.
Skip installing system dependencies. You want to use this flag if you either don’t trust this script or if you have unsupported operating system.
-Nflag isn’t provided, the script will run sudo to get user’s permission to install some system dependencies.
<http proxy url>¶
If you provide an HTTP proxy URL, pip will use this proxy to install all of the required packages.
Upgrade existing installation. Point the script to directory being a virtual environment, ie. containing
bin/pip(which is required in order to upgrade).
Run with default settings:
$ ./scripts/setup.sh -d ./gwm -D postgresql
Skip installing system dependencies:
$ ./scripts/setup.sh -N
Upgrade existing installation:
$ ./scripts/setup.sh -u ./existing_gwm
Generate wheels on your own with building script:
$ ./scripts/build_wheels.sh -e ./venv_whl -w ./wheels $ ./scripts/setup.sh -d ./ganeti_webmgr -w ./wheels
or send wheels to remote location and install from it:
$ ./scripts/build_wheels.sh -e ./venv_whl -w ./wheels $ rsync ./wheels email@example.com:/srv/www/wheels $ ./scripts/setup.sh -d ./ganeti_webmgr -w http://foo.example.org/wheels
After installing Ganeti Web Manager via
setup.sh this is what you get:
./ganeti_webmgr ├── bin ├── config ├── include │ └── ... ├── lib │ └── ... └── local └── ...
Virtual environment specific - don’t bother about them. The directory
config on the other hand is important to you: this is where your Ganeti Web Manager