LYRASIS’ “Reposervice” Setup Pushed to GitHub

Earlier this month published ‘reposervice’ to GitHub. Reposervice is a “self-contained” Islandora installation source tree that is intended to smooth the LYRASIS deployment of repository services between development servers, a staging server and production servers. It is a bit of a work-in-progress at the moment, but others might find it useful as well.

(By the way, if you had looked at Reposervice prior to June 18th, you may have noticed a missing critical element — the Drupal submodule. Not because you couldn’t add Drupal yourself but because the Reposervice clone has relative soft symlinks to the Islandora modules positioned in the top level Reposervice directory.)

The goals of this setup are listed in the README file:

  • Put (most) everything in a self-contained directory using relative paths for most components with a configuration script that generates configuration files for absolute paths.
  • Make it easy to track the upstream Islandora work so that you can bring selected commits into your own environment, if desired [using git submodules].
  • Put the configuration of Fedora Commons, FedoraGSearch, SOLR, and other associated components under version control.
  • Use Drupal Features to store the Drupal configuration and put it under version control.
  • Support multi-site setups for separate Islandora/Drupal instances using a common Fedora Commons, SOLR, and djatoka installation.

The first four bullets are there along with hints of the fifth. (There is some as-yet unfinished, uncommitted code that automates much of the work of creating multi-site setups under a single Drupal installation.)

When I sent a note about this to the islandora community mailing list, I got a helpful reply back from Nick Ruest pointing to some work that Graham Stewart of the University of Toronto had done using Chef.

Date: Thu, 13 Jun 2013 12:39:50 -0400
From: Nick Ruest
To: islandora@googlegroups.com
Subject: Re: [islandora] A ‘DevOps’ Configuration for Islandora

I nearly forgot! Graham Steward at UofT has a few recipes up in his
Github account[1] and there is a recording of his presentation from the
2012 Access[2].

-nruest

[1] https://github.com/librarychef
[2] http://www.youtube.com/watch?v=eTNBmy4ZznA

The recording of the presentation is a great introduction to Chef from a library perspective; Graham builds an Islandora 6.x installation from scratch in 624 seconds. The Ruby-based islandora12.rb recipe indeed has a great deal of resemblance to the bash scripts I was creating to deploy the components into the central directory tree. I’m going to have to add Chef to my list of things to learn, and Graham’s call of cooperation in building library-oriented recipes is a compelling one.

There are a few LYRASIS-specific things in here, but I’ve tried to make the basic building blocks replicable for others. This git repo, as it is further developed and documented, will be the foundation of a presentation I’m giving at Open Repositories next month. Comments, questions, observations, and even pull requests (should you find this setup useful in your own work) welcome!

(This post was updated on 16-Jun-2014.)