Forge Home


Install and configure karaf osgi server.


4,553 latest version

5.0 quality score

We run a couple of automated
scans to help you access a
module's quality. Each module is
given a score based on how well
the author has formatted their
code and documentation and
modules are also checked for
malware using VirusTotal.

Please note, the information below
is for guidance only and neither of
these methods should be considered
an endorsement by Puppet.

Version information

  • 1.1.6 (latest)
  • 1.1.5
  • 1.1.4
  • 1.1.3
  • 1.1.2
  • 1.1.1
  • 1.1.0
  • 1.0.2
  • 1.0.1
  • 1.0.0
  • 0.1.3
  • 0.1.2
  • 0.1.1
  • 0.1.0
released Mar 15th 2019
This version is compatible with:
  • Puppet Enterprise 2021.7.x, 2021.6.x, 2021.5.x, 2021.4.x, 2021.3.x, 2021.2.x, 2021.1.x, 2021.0.x, 2019.8.x, 2019.7.x, 2019.5.x, 2019.4.x, 2019.3.x, 2019.2.x, 2019.1.x, 2019.0.x, 2018.1.x, 2017.3.x, 2017.2.x, 2017.1.x, 2016.5.x, 2016.4.x
  • Puppet >= 3.0.0
  • ,

Start using this module

  • r10k or Code Manager
  • Bolt
  • Manual installation
  • Direct download

Add this module to your Puppetfile:

mod 'remyma-karaf', '1.1.6'
Learn more about managing modules with a Puppetfile

Add this module to your Bolt project:

bolt module add remyma-karaf
Learn more about using this module with an existing project

Manually install this module globally with Puppet module tool:

puppet module install remyma-karaf --version 1.1.6

Direct download is not typically how you would use a Puppet module to manage your infrastructure, but you may want to download the module in order to inspect the code.

Tags: java, karaf, osgi


remyma/karaf — version 1.1.6 Mar 15th 2019


Build Status Puppet Forge Version

Table of Contents

  1. Description
  2. Setup
  3. Usage - Configuration options and additional functionality
  4. Reference


This module can be used to set up a single or multiple Karaf instances.

Current version tested by this module is Karaf 4.2.0.


The module manages the following

  • Download or copy and extract karaf zip file
  • Configure karaf
  • Install karaf as a service

Setup requirements

  • puppetlabs-java for Java installation

Beginning with karaf

Declare the top-level karaf class and set up an instance:

class { 'karaf':


How to install a single Karaf instance

  • Installation, make sure service is running and will be started at boot time :
class { 'karaf':

This will install and configure a service named 'karaf'.

  • You can specify repos to be added on karaf startup, as well as features to start during karaf boot
class { 'karaf':
   karaf_startup_feature_repos => ['mvn:org.apache.camel.karaf/apache-camel/2.18.1/xml/features'],
   karaf_startup_feature_boots => ['jndi', 'jms', 'camel', 'camel-swagger', 'camel-jms']
  • You can override karaf default logging configuration file by providing your own:
class { 'karaf':
   file_karaf_logging    => 'puppet:///modules/karaf/karaf/etc/org.ops4j.pax.logging.cfg'
  • If you need to update your maven settings (for instance if karaf needs to retrieve maven dependencies from nexus), you can override maven settings:
class { 'karaf':
   file_maven_settings   => 'puppet:///modules/karaf_is/maven/settings.xml'

How to configure a Karaf instance

You can configure your karaf instance by using parameters : check reference section to know all available parameters.

How to manage multiple karaf instances

If you want to install several karaf instances, just provide an array of instances you want to create. You have to fulfill karaf_configuration_properties property to specify different ports for the instances.

$karaf_instances = {
  'instance1' => {
    karaf_configuration_properties => {
      ''      => {
        "sshPort" => 8101
      '' => {
        "rmiRegistryPort" => 1099,
        "rmiServerPort"   => 44444,
  'instance2' => {
    karaf_configuration_properties => {
      '' => {
        "sshPort" => 8102
      '' => {
        "rmiRegistryPort" => 1098,
        "rmiServerPort"   => 44445,

class { 'karaf':
  instances => $karaf_instances

How to remove a karaf instance

$karaf_instances = {
  'instance1' => {
    ensure  => absent

class { 'karaf':
  instances => $karaf_instances



All parameters are optional.


String. Karaf version to install (eg. 4.0.10).


String. Directory path where karaf will be installed.


String. 'web' or 'file'. If web, zip package is retrieved from url. If not, zip package has to be provided in module files/karaf/dist directory.


String. name of karaf directory when unzipped.


String. Url of karaf zip. Used id install_from web


String. User name of user to run karaf


String. User id of user to run karaf


String. Group name of user to run karaf


String. Group id of user to run karaf


String. java home


Array. Environment variables used in file. Example :

default_env_vars      => {
   'JAVA_MIN_MEM'  => '256M'


String. ssh host to connect to karaf console.


String. ssh port to connect to karaf console.


String. ssh user to connect to karaf console.


Array. custom properties to extend karaf properties in etc/ file.


Array. list of users definition to add in etc/ file. By default, it will add the karaf user as admin with karaf password (same as the default Karaf installation).

  karaf_users_definition => {
    'karaf' => 'karaf,_g_:admingroup'

The syntax is explained in file


Array. List of repos to declare at karaf startup.


Array. List of features to automatically start on karf boot.


String. Maven repositories to override the ones in ${karaf.home}/etc/org.ops4j.pax.url.mvn.cfg file under org.ops4j.pax.url.mvn.repositories property.


String. Path of file to override maven settings.


String. Path of file to override karaf logging.

karaf configuration properties

Array. List of configuration files (from karaf etc folder) with associated properties to override. Only works with single line value properties

karaf_configuration_properties => {
  ''      => {
    "sshPort" => 8101
  '' => {
    "rmiRegistryPort" => 1099,
    "rmiServerPort"   => 44444,