Skip to content

The Puppet DSpace module of the Philipps-University Marburg Computing Center and University Library.

License

Notifications You must be signed in to change notification settings

hrz-unimr/puppet-dspace

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DSpace

Table of Contents

  1. Overview
  2. Module description - What the module does and why it is useful
  3. Setup - The basics of getting started
  4. Usage - Configuration options and addition functionality
  5. Reference - An under-the-hood peek at what the module is doing and how
  6. Limitations - OS compatibility, etc.

Overview

The DSpace module lets you use Puppet to install and configure a DSpace instance with all its components (web, database, index and application server).

Module description

DSpace is a Java web application. The DSpace module lets you use Puppet to install DSpace and manage its configuration files. It supports to install a DSpace instance with all components on one virtual machine or in a cluster.

Setup

Requirements

The DSpace module requires:

Beginning

The simplest way to get a DSpace instance with all its components is to install all components and configure the basics in the configuration class.

# Setup basic configuration

class { 'dspace::configuration':
    database_name   => 'name of youre database',
    database_user   => 'name of the database user',
    database_passwd => 'database user password',
}

# Setup web server

class { 'dspace::portal::server':
    host => '0.0.0.0',
}

# Setup database server

class { 'dspace::database::server':

}

# Setup application server

class { 'dspace::application::source':

}

class { 'dspace::application::server':

}

# Setup index server

class { 'dspace::index::source':

}

class { 'dspace::index::server':

}

Usage

System and DSpace configuration

The basic system and DSpace configuration is held in dspace::configuration. The most of the configuration in local.cfg is parameterized in this class. In some cases additional keys are implemented to cover a functionality. Also a path to a additional configuration file with customized configuration can be added by the parameter own_configuration.

Authentication

This module supports authentication configuration. To enable configure selected methods in one String separated with commas.

class { 'dspace::configuration':
    authentication_method => 'org.dspace.authenticate.PasswordAuthentication, org.dspace.authenticate.ShibAuthentication'
}

For LDAP and Shibboleth authentication this module implements a basic configuration in local.cfg.

DOI Registration via DataCite

This module supports the DSpace DOI Configuration . Currently only DataCite is available. The three necessary configuration files (local.cfg, DIM2DataCite.xsl , identifier-service.xml) are managed as templates. All parameter are located in the configuration class.

Item Versioning

This module supports item versioning which is not activated per default. It is configurable via dspace::configuration::item_versioning.

Maintenance jobs

This module supports the DSpace maintenance per various cron jobs. Important: You have to configure your email and database settings properly before use it.

For the filter-media job the plugins are configurable. Per default all plugins are used. Selected plugins can be configured as Array:

# Only filter text, no thumbnails
class { 'dspace::server::cron':
    media_filter_plugins => [PDF Text Extractor,HTML Text Extractor,Word Text Extractor]
}
Manage custom command line tools

If you write customized command line tools for DSpace, you have to start them via DSpace launcher and configure in launcher.xml. This module supports the launcher configuration.

class { 'dspace::configuration':
    dspace_launcher_commands => [
        {
            "name":"metadata-archive-export",
            "description":"Export UUIDs and last modification dates of all items.",
            "class":"org.dspace.app.bulkedit.MetadataArchiveExport"
        },
        {
            "name":"group-builder",
            "description":"Build/update DSpace group structure.",
            "class":"org.dspace.administer.GroupBuilder"
        }
    ]
}

The configured hashs are implemented in the launcher.xml template.

Managed options

This module supports pre configured options for Java components: JVM, Tomcat, Maven, Ant. These options are enabled per default. Additional options are configurable via dspace::configuration: java_opts, maven_opts, ant_opts and catalina_opts.

Modularisation

This module supports a separated installation of default DSpace code and own customise code via separated Git repositories. Therefore the overlay-mechanic is used.

class { 'dspace::configuration':
    git_repository              => 'https://github.com/DSpace/DSpace.git',
    git_revision                => 'dspace-6.3',
    separated_code_repositories => true,
    dspace_custom_repository    => 'https://gitlab.myinstitution.edu/DSpace/custom.git',
    dspace_custom_revision      => 'master'
}

The second Git repository should only contents the dspace-directory with config, modules, solr directories. So it is not necassary to take care of the default DSpace source code.

Proxy

This module supports proxy configuration for every component of the DSpace instance - except the webserver. If all components use one proxy server it is configurable via dspace::configuration::system_proxy_url which is default for all components. Other proxy configuration parameter are:

  • dspace_proxy_url for DSpace application
  • git_proxy_url for Git
  • java_proxy_url for JVM
  • maven_proxy_url for Maven
  • ant_proxy_url for Ant
  • tomcat_proxy_url for Tomcat
Separated DSpace directories

This module supports to separate the DSpace instance directory from the data directory, e.g. asset store. Per default the instance directory is also the data direcotry. If you use a shared directory, for example in a cluster setting, you can configure a different path in dspace::configuration::data_dir. In which the asset store is also located. The data directory also included all directories which have to be shared in a cluster setting, like upload, export, tasks and OAI.

Reference

See REFERENCE.md

Limitations

Tested Operating Systems
  • Debian Stretch
  • Debian Buster (Testing)
  • Ubuntu 16.04 LTS.
Tested DSpace Version
  • 6.X
Tested web application server

Tomcat in version 8. Jetty is not supported.

Tested Databases

PostgreSQL in version 9.6 and 11. Oracle is not supported.

User Interface

At the moment this module supports only the XMLUI with Mirage 2 theme. Also many configuration parameters belonging only to the XMLUI. With small customizations of the dspace::application::server class the JSPUI can also be installed.

Multiple Instances

It is not possible to install more than one DSpace instance with this module. There is only one central configuration for Java, Maven and Ant. So it is not possible to configure several instances of one node class with different system settings. But it is possible to install more than one instance of a node class with the same configuration.

About

The Puppet DSpace module of the Philipps-University Marburg Computing Center and University Library.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published