galaxyproject/planemo-machine

Name: planemo-machine

Owner: Galaxy Project

Description: A packer.io configuration for building out Galaxy (http://galaxyproject.org/) tool development environments.

Created: 2015-01-16 03:30:12.0

Updated: 2017-05-05 16:02:04.0

Pushed: 2017-06-22 18:26:56.0

Homepage: null

Size: 233

Language: Shell

GitHub Committers

UserMost Recent Commit# Commits
James Taylor2015-05-22 21:52:51.06
Kyle Ellrott2016-08-23 19:08:59.06
Dannon Baker2015-05-25 14:13:07.014
John Chilton2018-02-06 17:53:48.0177
Anthony Bretaudeau2018-02-06 14:53:29.04
Enis Afgan2016-04-04 14:47:48.01
Björn Grüning2016-06-15 17:45:12.024
Dave B.2016-06-21 19:19:24.015
Martin Cech2016-06-23 03:40:39.07

Other Committers

UserEmailMost Recent Commit# Commits

README

planemo-machine

A set of packer and ansible configuration files and scripts used to build Ubuntu environment for Galaxy tool development.

Build Status

Setup

This project makes use of git submodules and before you build any planemo machines, you'll need to initialize them:

make init

This will simply execute the following command git submodule init && git submodule update.

Example Uses

make vagrant

make virtualbox

The virtualbox OVA unlink the other variants will include a graphical environment (Xubuntu) tailored for development (auto logins to the ubuntu user, configured with tools such as Komodo).

make docker

To override the Docker command to use sudo for instance do

make docker DOCKER_COMMAND='sudo docker'

make docker-dev

make docker-via-packer

The VM version of this build process will enable Docker by default - but when building a Docker image we disable this so the developer doesn't need to configure docker-in-docker functionality.

packer build -var 'gce_project_id=<PROJECT_ID>' --only googlecompute packer.json

packer build -var 'ami_access_key=<AWS ACCESS KEY>' -var 'ami_secret_key=<AWS SECRET KEY>' --only googlecompute packer.json

How it works

The file packer.json contains a description of steps to execute to provision a box - broken out by where it is being provisioned (Docker, AWS,GCE, etc…). The main step is the ansible provisioning step preceeded immediately by the execution of the setup_ansible.sh script. These steps are executed for all platforms. To get to that point however, the RAW image needs to be configured - basically an Ubuntu 14.04 machine needs to be created with a password-less sudoing user (defaulting to ubuntu but overridable using -var 'username=XXX' argument to packer - see for instance vagrant_create_box.sh script which overrides this to be ubuntu).

The Ansible roles used to provision the box are found in roles and the ansible playbook used to specify and configure them is provision.yml. Overview of the roles:

Ideas and code borrowed from various places

This work is supported by the National Institutes of Health's National Center for Advancing Translational Sciences, Grant Number U24TR002306. This work is solely the responsibility of the creators and does not necessarily represent the official views of the National Institutes of Health.