GraphDB Puppet module
Initial project
- The initiale project is here : Ontotext-AD/puppet-graphdb
- The fork link was suppressed because :
- Lot of divergences with initial project
- Initial project is "frozen" (at 02/08/2024 the last commit was "Nov 26, 2020")
Table of Contents
- Module description - What the module does and why it is useful
- Module documentation - generated documenation
- Setup - The basics of getting started with GraphDB
- Usage - Configuration options and additional functionality
- Limitations - OS compatibility, etc.
- Development - Guide for contributing to the module
- License
Module description
This module sets up GraphDB instances with additional resource for repository creation, data loading, updates, backups, and more.
This module has been tested on GraphDB 10.0.3, 10.5.x
Module reference
Please see the REFERENCE.md file ("puppet strings" generated documentation).
Setup
The module manages the following
- GraphDB repository files.
- GraphDB distribution.
- GraphDB configuration file.
- GraphDB service.
- GraphDB plugins.
Requirements
- The stdlib Puppet library.
Beginning with GraphDB
Version 10.0.0
Declare the top-level graphdb
class and set up an instance:
# Since 10.0.0, "edition" paramater is useless.
class{ 'graphdb':
version => '10.0.0',
}
graphdb::instance { 'graphdb-instance':
license => '/home/graphdb/graphdb.license',
}
Version 9 and before
Declare the top-level graphdb
class and set up an instance:
class{ 'graphdb':
version => '9.10.2',
edition => 'se',
}
graphdb::instance { 'graphdb-instance':
license => '/home/graphdb/graphdb.license',
}
Usage
Most top-level parameters in the graphdb
class are set to reasonable defaults.
The following are some parameters that may be useful to override:
Removal/Decommissioning
class { 'graphdb':
ensure => 'absent'
}
Install everything but disable service(s) afterwards
class { 'graphdb':
version => '9.10.2',
edition => 'se',
status => 'disabled'
}
Automatically restarting the service (default set to true)
By default, the module will restart GraphDB when the configuration file changed. This can be overridden globally with the following option:
class { 'graphdb':
version => '9.10.2',
edition => 'se',
restart_on_change => false,
}
Instances
This module works with the concept of instances. For service to start you need to specify at least one instance.
Quick setup
graphdb::instance { 'graphdb-instance': license => '/home/graphdb/graphdb.license' }
This will set up its own data directory and set the service name to: graphdb-instance
Advanced options
Instance specific options can be given:
graphdb::instance { 'graphdb-instance':
http_port => 8080, # http port that GraphDB will use
kill_timeout => 180, # time before force kill of GraphDB process
validator_timeout => 60, # GraphDB repository validator timeout
logback_config => undef, # custom GraphDB logback log configuration
extra_properties => { }, # extra properties for graphdb.properties file
external_url => undef, # graphDB external URL if GraphDB instance is accessed via proxy, e.g. https://ontotext.com/graphdb
heap_size => '2g', # GraphDB java heap size given by -Xmx parameter. Note heap_size parameter will also set xms=xmx
java_opts => [], # extra java opts for java process
protocol => 'http', # https or http protocol, defaults to http
}
Limitations
This module has been built on and tested against Puppet 7 and higher.
The module has been tested on:
- Debian 11
Development
Please see the CONTRIBUTING.md file for instructions regarding development environments and testing.
License
Please see the LICENSE