- Overview
- Module description - What the module does and why it is useful
- Setup - The basics of getting started
- Usage - Configuration options and addition functionality
- Reference - An under-the-hood peek at what the module is doing and how
- Limitations - OS compatibility, etc.
The DSpace module lets you use Puppet to install and configure a DSpace instance with all its components (web, database, index and application server).
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.
The DSpace module requires:
- puppetlabs-apache version 3.0.0 or newer
- puppetlabs-haproxy version 2.1.0 or newer
- puppetlabs-postgresql version 5.2.1 or newer
- puppetlabs-stdlib version 4.25.1 or newer
- puppetlabs-tomcat version 2.1.0 or newer
- puppetlabs-vcsrepo version 2.2.0 or newer
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':
}
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
.
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.
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.
This module supports item versioning which is not activated per default. It is
configurable via dspace::configuration::item_versioning
.
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]
}
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.
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
.
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.
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 applicationgit_proxy_url
for Gitjava_proxy_url
for JVMmaven_proxy_url
for Mavenant_proxy_url
for Anttomcat_proxy_url
for Tomcat
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.
See REFERENCE.md
- Debian Stretch
- Debian Buster (Testing)
- Ubuntu 16.04 LTS.
- 6.X
Tomcat in version 8. Jetty is not supported.
PostgreSQL in version 9.6 and 11. Oracle is not supported.
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.
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.