This project uses vagrant to create a temporary Virtual Machine (VM) (suitable for developers) provisioned by puppet (responsible for installation of additional software) with an installation of the repository developed at LINDAT/CLARIN based on DSpace including a number of useful tools. The VM can be created for different providers e.g., VirtualBox.
There is a similar project vagrant-dspace but we found it not suitable for our needs.
LINDAT/CLARIN dev team (jm)
- vagrant
- virtualbox (tested)
- master - uses lindat-dspace
- obsolete
lindat-repository-old
- uses old lindat-repository
After cloning this project and executing vagrant up
(or better vagrant up lindat
) you will get a VM with:
- Ubuntu 12.04 VM with
33.33.33.80
ip address anddspace.lindat.dev
hostname (update your hosts file to reach it under this name) - git, java, maven
- apache, tomcat
- probe, nagios, munin, monit, phppgadmin
- jenkins with a simple reload script
- latest version of the LINDAT/CLARIN repository inside a shared directory easily accessible between your computer the new VM (Projects/... and www)
- out-of-the-box availability to debug DSpace on port 8000 using Remote debugging e.g., in Eclipse. Use the sources from the shared directory.
- overview Web page at http://33.33.33.80 or better (http://dspace.lindat.dev) containing also users and passwords to the services
The VM exposes many crucial interfaces with no or simple passwords - do not make the VM accessible from any external network!
The project is a standard Vagrant + puppet. Vagrant resources are described in Vagrantfile and contain definitions of three preconfigured boxes: lindat
and dspace4
.
The below snippet shows several variables passed from Vagrant to puppet provisioner
puppet.facter = {
"java_version" => "7",
"tom_version" => "7",
"repo_branch" => "lindat",
"fqdn" => "dspace.lindat.dev",
}
which control java and tomcat version (tested also with java6 and tomcat6, for java8 read comments in puppet/manifests/lindat.pp).
Puppet definitons and modules are in puppet directory with puppet/manifests/lindat.pp the main file being executed for the lindat
box.
The puppet modules have been slightly modified to match our needs.
When puppet finishes Vagrant calls shell scripts e.g.,
lindat.vm.provision "shell", path: "./Projects/libs/setup.probe.sh"
lindat.vm.provision "shell", path: "./Projects/libs/setup.jenkins.sh"
lindat.vm.provision "shell", path: "./Projects/libs/setup.munin.sh"
lindat.vm.provision "shell", path: "./Projects/setup.lindat.sh"
There are several reasons why they are not part of puppet (they could be in general).
The lindat
box automatically imports sql dumps from the Projects/dumps directory. The setup.lindat.sh script searches for these three files:
- user.sql
- dspace.sql
- utilities.sql
There is another box called dspace4
which installs dspace4 in a very similar environment as our lindat
box. A considerable stripped down and fixed version of the puppet module in vagrant-dspace was used.
This project is CC-BY unless noted otherwise in the particular modules.
example42.com which created most of the puppet modules used in this project.