jonhallettuob-existdb

Puppet Module for eXist-db


Keywords
exist-db, puppet-module, sysadmin
License
BSD-3-Clause
Install
puppet module install jonhallettuob-existdb --version 0.3.4

Documentation

eXistdb Puppet module

Table of Contents

  1. Description
  2. Setup - The basics of getting started with existdb
  3. Usage - Configuration options and additional functionality
  4. Reference - An under-the-hood peek at what the module is doing and how
  5. Limitations - OS compatibility, etc.

Description

This module installs the eXist database software and starts it as a service.

Setup

Beginning with existdb

To use this module, add these declarations to your Puppetfile:

mod 'puppetlabs-stdlib','4.25.1'
mod 'puppetlabs-java', '2.1.0'
mod 'puppet-archive', '3.0.0'
mod 'puppet-nginx','0.15.0'
mod 'jonhallettuob-existdb', '0.4.0'

To install eXistdb and start it as a service with default parameters:

class { 'java':
  package => 'java-1.8.0-openjdk-devel',
}
class { 'existdb': }

Or equivalently in Hiera:

---
classes:
  - java
  - existdb

java::package: 'java-1.8.0-openjdk-devel'

To configure a reverse proxy to make eXistdb appear on port 443, add mod 'puppet-nginx', '0.9.0' to your Puppetfile and then in Hiera:

classes:
  - existdb::reverseproxy

existdb::reverseproxy::servers:
  'server.example.com':
    server_cert_name: 'server.example.com'
    uri_path: '/exist/apps/example.com'

Usage

Set up eXistdb and its data in specific directories:

class existdb {
  exist_home => '/usr/local/exist',
  exist_data => '/var/lib/exist',
}

Reference

class existdb (
  $exist_home                  = '/usr/local/existdb',
  $exist_data                  = '/var/lib/existdb',
  $exist_cache_size            = '128M',
  $exist_collection_cache_size = '24M',
  $exist_revision              = 'eXist-5.2.0',
  $exist_version               = '5.2.0',
  $java_home                   = '/usr/lib/jvm/jre',
  $exist_user                  = 'existdb',
  $exist_group                 = 'existdb',
) {
 ...
}

class existdb::reverseproxy (
  $servers,
  $exist_home = '/usr/local/existdb',
) {
 ...
}

define existdb::reverseproxy::server {
  $server_name,
  $server_cert_name = $server_name,
  $ssl_cert_path = "/etc/pki/tls/certs/${server_cert_name}.crt",
  $ssl_cert = undef,
  $ssl_key_path = "/etc/pki/tls/private/${server_cert_name}.key",
  $ssl_key = undef,
  $uri_path = '',
  $proxy_redirect = 'default',
  $location_cfg_append = undef,
  $raw_append = undef,
  $format_log = 'combined',
) {
 ...
}

Limitations

The module was developed on CentOS 7 using Puppet 4 and hasn't been tested on any other systems.