Giter Site home page Giter Site logo

usegalaxy-playbook's Introduction

usegalaxy.org Playbook

This Ansible playbook is used to deploy and maintain the public Galaxy servers, namely Galaxy Main (usegalaxy.org) and Galaxy Test (test.galaxyproject.org). The generalized roles herein have been published to Ansible Galaxy and can be installed for your own use via the ansible-galaxy command, but a few site-specific roles are contained here as well.

This playbook is not designed to be used by Galaxy deployers/admins at other sites, but should be useful as a reference for anyone wishing to emulate a setup like usegalaxy.org.

Usage

Usage documentation can be found in the usegalaxy-playbook wiki.

You will need the vault password to run most plays. These can be found in the galaxyproject pass(1) password store. If you have configured a gpg-agent(1), you can pipe pass directly to ansible-playbook like so:

% pass ansible/vault/usegalaxy | ansible-playbook --vault-password-file=/bin/cat [additional options...]

A handy shell function to run the common playbooks with pass can be found in the wiki.

Installing tools

Tools are installed using the roles/galaxyproject.tools role. Each Galaxy instance has the toolset to be installed listed under files/galaxy/test.galaxyproject.org|usegalaxy.org/tool_list.yaml so edit that file to include new tools or versions. An admin user API key is required to install the tools, and it is stored in the Vault under api_key variable. Run the role with (replace stage with production for Main):

% ansible-playbook tools.yml --ask-vault-pass -i stage/inventory

Note that by default this roll will create a virtualenv in your /tmp dir. The installation log is available in /tmp/galaxy_tool_install.log.

Build Notes

Building Pulsar's dependencies' dependencies as an unprivileged user on some HPC systems was a difficult manual process, so I made some notes, which may be helpful:

slurm-drmaa compiled and installed by hand on Stampede (slurm-devel is not installed (or worse, some login nodes have mismatched versions), so I had to work around this):

cd slurm
mkdir -p include/slurm
cd src/slurm-2.6.3
./configure --prefix=/usr
cp slurm/*.h ../../include/slurm
cd slurm-drmaa-1.0.7
./configure --prefix=/work/galaxy/test/slurm-drmaa --with-slurm-inc=/work/galaxy/test/slurm/include && make && make install

Python + virtualenv compiled and installed by hand on Stampede:

cd /work/galaxy/test/python/src/Python-2.7.6
./configure --prefix=/work/galaxy/test/python --enable-unicode=ucs4 && make && make install
cd ../virtualenv-1.11.5
/work/galaxy/test/python/bin/python setup.py install

Dependency Notes

Prior to conda integration there was no good way to install dependencies for Pulsar. What I'd done for those dependencies was:

  1. rsync the tool_dependency_dir from the Galaxy server to the Pulsar server.

  2. Use find and sed to alter paths in env.sh

  3. Recreate virtualenvs in deps using a local copy of virtualenv but this requires removing include/python2.7, lib/python2.7, and copying site-packages from the old venv to the new venv. Obviously not a sustainable model.

License

Academic Free License ("AFL") v. 3.0

Credits

Contributors

Inspiration/Thanks

Lance Parsons
Peter van Heusden

usegalaxy-playbook's People

Contributors

natefoo avatar martenson avatar davebx avatar tnabtaf avatar dannon avatar blankenberg avatar afgane avatar nekrut avatar nsoranzo avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.