Git Product home page Git Product logo

islandora_vagrant's Introduction

Islandora Vagrant Build Status

Introduction

The is a development environment virtual machine for Islandora 7.x-1.x. It should work on any operating system that supports VirtualBox and Vagrant.

N.B. This virtual machine should not be used in production.

Requirements

  1. VirtualBox
  • Be sure to install a version of VirtualBox that is compatible with Vagrant
  • If upgrading from a previous version run bash vagrant plugin update to avoid plugin issues
  1. git

Note that virtualization must be enabled in the host machine's BIOS settings.

Variables

System Resources

By default the virtual machine that is built uses 3GB of RAM. Your host machine will need to be able to support that. You can override the CPU and RAM allocation by creating ISLANDORA_VAGRANT_CPUS and ISLANDORA_VAGRANT_MEMORY environment variables and setting the values. For example, on an Ubuntu host you could add to ~/.bashrc:

export ISLANDORA_VAGRANT_CPUS=4
export ISLANDORA_VAGRANT_MEMORY=4096

The files involved will also exceed 10GB. Your host machine will need at least that much free storage.

Hostname and Port Forwarding

If you use a DNS or host file management plugin with Vagrant, you may want to set a specific hostname for the virtual machine and disable port forwarding. You can do that with the ISLANDORA_VAGRANT_HOSTNAME and ISLANDORA_VAGRANT_FORWARD variables. For example:

export ISLANDORA_VAGRANT_HOSTNAME="islandora.vagrant.test"
export ISLANDORA_VAGRANT_FORWARD="FALSE"

Use

  1. git clone https://github.com/islandora-labs/islandora_vagrant
  2. cd islandora_vagrant
  3. vagrant up

Connect

Note: The supplied links apply only to this local vagrant system. They could vary in other installations.

You can connect to the machine via the browser at http://localhost:8000.

The default Drupal login details are:

  • username: admin
  • password: islandora

MySQL:

  • username: root
  • password: islandora

Tomcat Manager:

  • username: islandora
  • password: islandora

Fedora: (Fedora Admin | Fedora Risearch | Fedora Services)

  • username: fedoraAdmin
  • password: fedoraAdmin

GSearch:

  • username: fedoraAdmin
  • password: fedoraAdmin

cantaloupe admin:

  • username: admin
  • password: admin

ssh, scp, rsync:

  • username: vagrant
  • password: vagrant
  • Examples
    • ssh -p 2222 vagrant@localhost or vagrant ssh
    • scp -P 2222 somefile.txt vagrant@localhost:/destination/path
    • rsync --rsh='ssh -p2222' -av somedir vagrant@localhost:/tmp

Environment

  • Ubuntu 14.04
  • Drupal 7.44
  • MySQL 5.5.49
  • Apache 2.4.7
  • Tomcat 7.0.55.0
  • Solr 4.2.0
  • Fedora 3.8.1
  • GSearch HEAD
  • PHP 5.5.9-1ubuntu4.17
  • Java 8 (Oracle)
  • FITS 1.1.1
  • drush 6.3.0
  • jQuery 1.10.2

Run in a multiple VM configuration

To run this vm side by side with Islandora 8 or another VM with conflicting ports do the following.

To use this configuration, you must install two Vagrant plugins.

  # For more info https://github.com/dotless-de/vagrant-vbguest
$ vagrant plugin install vagrant-vbguest

  # For more info https://github.com/cogitatio/vagrant-hostsupdater
$ vagrant plugin install vagrant-hostsupdater

To start this as a second VM either:

  • set a enviroment variable ISLANDORA_VAGRANT_MULTIPLE_ISLANDORAS or
  • run the following command: ISLANDORA_VAGRANT_MULTIPLE_ISLANDORAS='TRUE' vagrant up

You will be asked to enter your local user password. When Vagrant stops running, Islandora 7.x will be available at http://33.33.33.10:8000.

$ ISLANDORA_VAGRANT_MULTIPLE_ISLANDORAS='TRUE' vagrant up

NOTE:

vagrant-hostsupdater will temporarily update the host machine's /etc/hosts file and remove it when vagrant is destroyed.

##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1       localhost
255.255.255.255 broadcasthost
::1             localhost
33.33.33.10  islandora  # VAGRANT: 67ed63b757392fOOc6a4e5Od8a6b6428 (default) / 7d727ed8-557g-4be8-9e13-589444a57754

Also note that each vm must be halted separately, from within the directories on the host where they were started with vagrant up.

Maintainers

Authors

Acknowledgements

This project was inspired by Ryerson University Library's Islandora Chef, which was inspired by University of Toronto Libraries' LibraryChef. So, many thanks to Graham Stewart, and MJ Suhonos.

islandora_vagrant's People

Contributors

ajstanley avatar bryjbrown avatar dannylamb avatar diegopino avatar donrichards avatar kant avatar ksclarke avatar lo5an avatar lutaylor avatar manez avatar mark-cooper avatar mjordan avatar rosiel avatar ruebot avatar whikloj avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

islandora_vagrant's Issues

UI for purging objects is missing

Logged in as admin (uid 1), I am not seeing the button in objects' Properties tab to purge the object, nor am I seeing the "Delete members of this collection" UI in the collection tab. Screencaps attached. Anyone else see this behavior or am I going crazier?

object_purge

collection_purge

Editing through Fedora's Flash admin client is broken

In need of a sanity check... I don't seem to be able to edit a MODS datastream through the Fedora web admin client on an islandora_vagrant instance. I just get a blank screen when I go to an object, select MODS, and then select "Edit Content".

Islandora module configurations -- post install

  • Djatoka server base URL - http://localhost:8080/adore-djatoka/resolver
  • Large Image SP viewer - OpenSeadragon
  • System path to FITS processor - /usr/local/fits/fits-0.8.4/fits.sh
  • Java Executable - /usr/bin/java
  • Tesseract path - /usr/local/bin/tesseract
  • Audio SP viewer - video.js
  • Book SP viewer (book) - IA
  • Book SP viewer (page) - OpenSeadragon
  • Newspaper SP viewer (book) - IA
  • Newspaper SP viewer (page) - OpenSeadragon
  • PDF SP viewer - pdf.js
  • Video SP viewer - video.js
  • Path to ffmpeg executable - /usr/local/bin/ffmpeg

Generating sample content

Any interest in a module to generate some sample/lorum ipsum objects? Today I did up https://github.com/mjordan/islandora_groovy, which shows how we can use ImageMagick to generate images and then load them using Islandora Batch. Generating PDFs is (literally) as simple as changing the extension of the output file from .jpg to .pdf. I don't have any ideas on how to generate audio/video/disk images/other file types, etc. but we could probably generate paged content for newspapers and books pretty easily using the newspaper and book loaders.

All the code is in the drush file but we could add a GUI.

Upgrade Tesseract to 3.03

Tesseract 3.03 (and languages) is available in the Ubuntu repos in 14.04. No need to compile from source anymore.

Document how to scp files to the vagrant

Where is says "You can connect to the machine via ssh: ssh -p 2222 vagrant@localhost" in the README, add "You can scp files to/from the machine via scp -P 2222 vagrant@localhost:/destination/path"

Can open a PR if this is OK.

vagrant provision fails because symlink already exists

"vagrant provision" fails because the symlink /usr/share/php/PHP/CodeSniffer/Standards/Drupal already exists (last command in devtools.sh). rm -f /usr/share/php/PHP/CodeSniffer/Standards/Drupal removes the link if it already exists, fails silently if it doesn't.

Clean up /var/www/drupal file/dir permissions

I'd say that the Drupal directory structure at the end of the build should be owned/writeable by vagrant and be readable by the www-data group (with the exception of 'files' which needs to be writeable by the web user: www-data). Other thoughts? I see there is a "web" group that vagrant, tomcat7, and apache/www-data are in. As it is now on the file system, some things are vagrant:vagrant, some are root:root, and some are vagrant:web.

This is just to start the discussion about how we can end up with a consistent permissions scheme after installation.

GSearch - DGI extensions, and update xslts

Error at xsl:include on line 10 column 170 of slurp_all_MODS_to_solr.xslt:
  XTSE0165: I/O error reported by XML parser processing
  file:/usr/local/fedora/tomcat/webapps/fedoragsearch/WEB-INF/classes/fgsconfigFinal/index/FgsIndex/islandora_transforms/library/xslt-date-template.xslt: /usr/local/fedora/tomcat/webapps/fedoragsearch/WEB-INF/classes/fgsconfigFinal/index/FgsIndex/islandora_transforms/library/xslt-date-template.xslt (No such file or directory)
Error at xsl:include on line 101 column 158 of foxmlToSolr.xslt:
  XTSE0165: Reported 1 error in included stylesheet module
Error at xsl:call-template on line 124 column 50 of EACCPF_to_solr.xslt:
  XTSE0650: No template exists named get_ISO8601_date
Error at xsl:call-template on line 50 column 56 of WORKFLOW_to_solr.xslt:
  XTSE0650: No template exists named get_ISO8601_date

As a devops, I would like to cache OS package downloads in order to speed up vm rebuilds.

@whikloj suggested adding this, in the discussion for issue #21

There is also the possibility of:

  1. Replace apt-get with apt-get -d to download source into the downloads directory.
  2. Use dpkg -i to install the packages from the downloads directory.
    This would extend the download once, install many idea. Just not sure how it would handle dependencies.

but we might also want to look at vagrant plugins like https://github.com/fgrehm/vagrant-cachier

Using Features within custom.sh

This isn't an enhancement issue, I thought I'd document something cool and potentially useful to others.

I've been playing with Features (and the accompanying Strongarm module). Basically, you use these two modules to dump out various site configurations into a module, move the module to another Drupal instance, enable the module, and then 'revert' the configuration expressed in the module on the new site. In my custom.sh script, I download and enable Features and Strongarm, then clone the module that contains the dumped features configuration, then run the drush command to revert that configuration into the Vagrant site:

cd /var/www/drupal/sites/all/modules
drush en features -y
drush en strongarm -y
# This is a git repo containing the dumped out features module
git clone http://git.example.com/example/islandora_test_site.git
# Enable the module
drush --yes en islandora_test_site
# Apply the 'feature' to the site
drush --yes features-revert islandora_test_site

Combined with automating the loading of some sample content, we'll find this ability very useful for testing and training VMs.

Move wget/curl calls to gists to config directory

Post install -- Drupal status

  • The CTools CSS cache directory, ctools/css could not be created due to a misconfigured files directory. Please ensure that the files directory is correctly configured and that the webserver has permission to create directories.
  • The directory sites/default/files is not writable. You may need to set the correct directory at the file system settings page or change the current directory's permissions so that it is writable.
  • The XML cached files are out of date and need to be regenerated. You can run cron manually to regenerate the sitemap files.
  • The directory public://xmlsitemap was not found or is not writable by the server. See http://drupal.org/node/34025 for more information.
  • Your server is capable of displaying file upload progress, but does not have the required libraries. It is recommended to install the PECL uploadprogress library (preferred) or to install APC.

Make the Apache Document Root configurable

I like the VM, but I would love to edit using my normal process/programs but see the changes in the VM instantaneously.
If the doc root was configurable, you could set it to your shared directory and be able to access the module code from outside the VM.

drush dcs doesn't work

running drush dcs produces the following error:

The drush command 'dcs' could not be found. Run drush cache-clear drush to clear the commandfile cache if you have installed new extensions. [error]

Clearing the drush cache doesn't help. I'll look into this.

Update to Java 8

Java 7 reached its end of life in April 2015 and will no longer be receiving patches.

Update Islandora Vagrant to use Java 8.

Update FITS

A new version of FITS (0.8.5) has been release. We should update to use the new version.

Sleuthkit

SleuthKit Version: 4.1.3
*** NO AFFLIB SUPPORT ***
*** NO LIBEWF SUPPORT ***

Investigate this.

IA book reader never renders

As illustrated in the attached screencap:

ia_bookreader

I've seen this behavior on two separate instances of the Islandora Vagrant.

vagrant up dies when installing FITS

I'm running a clean vagrant up at c76b8bf and the install is dying, I think at https://github.com/Islandora-Labs/islandora_vagrant/blob/master/scripts/fits.sh#L20 (or more likely at https://github.com/Islandora-Labs/islandora_vagrant/blob/master/scripts/fits.sh#L21). I'm attaching the output from vagrant up (in a Windows cmd shell).

time_of_death

sshing into the vm I can confirm that /vagrant/downloads/fits-0.8.5.zip does exist. Also attaching a screencap of the contents of /usr/local/fits/fits-0.8.5 - everything looks good:

in_fits_dir

Any ideas?

Authentication error with Fedora API-M

When I go to http://localhost:8080/fedora/objects/ I can see the object. But if I go to view a datastream, it asks for a username and password. When I enter the default fedoraAdmin:fedoraAdmin then I get a WSOD and the fedora log says

WARN 2015-04-30 00:09:43.716 [http-bio-8080-exec-4] (BaseRestResource) Authorization failed; unable to fulfill REST API request
org.fcrepo.server.errors.authorization.AuthzDeniedException:
        at org.fcrepo.server.security.impl.DefaultPolicyEnforcementPoint.enforce(DefaultPolicyEnforcementPoint.java:137) ~[fcrepo-server-3.8.0.jar:na]
        at org.fcrepo.server.security.DefaultAuthorization.enforceGetDatastream(DefaultAuthorization.java:370) ~[fcrepo-server-3.8.0.jar:na]
        at org.fcrepo.server.management.DefaultManagement.getDatastream(DefaultManagement.java:1145) ~[fcrepo-server-3.8.0.jar:na]

I verified that the fedoraAdmin:fedoraAdmin combo is defined in the fedora-users.xml file.

Install Islandora modules

  • List of modules
  • Clone all modules
  • Order of install and enabling
  • Setup Kakadu from #3 for Large Image SP dependency
  • Install solution pack objects

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.