Forge Home


This Puppet module manages Nexus OSS Maven repository (

Dario Sestero



6,647 latest version

5.0 quality score

Version information

  • 1.1.0 (latest)
  • 1.0.0
released Jul 13th 2016
This version is compatible with:
  • Puppet Enterprise 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
  • Ubuntu

Start using this module

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

Add this module to your Puppetfile:

mod 'dsestero-nexus', '1.1.0'
Learn more about managing modules with a Puppetfile

Add this module to your Bolt project:

bolt module add dsestero-nexus
Learn more about using this module with an existing project

Manually install this module globally with Puppet module tool:

puppet module install dsestero-nexus --version 1.1.0

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.



dsestero/nexus — version 1.1.0 Jul 13th 2016


####Table of Contents

  1. Overview
  2. Module Description - What the module does and why it is useful
  3. Setup - The basics of getting started with nexus
  4. Usage - Configuration options and additional functionality
  5. Reference - An under-the-hood peek at what the module is doing and how
  6. Limitations - OS compatibility, etc.
  7. Development - Guide for contributing to the module


This is the nexus module. It manages Nexus OSS Maven repository. Nexus is the reference software for Maven repository management (see

##Module Description

The module installs the distribution of Nexus OSS by extracting the tarball and setting up the file system and the system user running the nexus service.


###What nexus affects

The module creates the nexus system user, installs the nexus distribution under /opt, creates (if not existing) a directory to host the repositories (by default it is /var/lib/sonatype-work), creates a directory for Nexus logs under /var/log/nexus and one for Nexus cache under /var/cache/nexus. Furthermore, it sets up the scripts for managing Nexus as a service.

###Setup Requirements

This modules requires the following other modules to be installed:

  • dsestero/download_uncompress

    to provide the basic capability to download and unzip the Nexus distribution

  • dsestero/java

    to install a suitable java development environment

###Beginning with nexus

To install nexus as a service with default configuration, it is possible to use a declaration as the following:

include nexus


To install the nexus service listening on port 9090 and hosting the Maven repositories under /srv/nexus the declaration would be:

  class nexus { 'install_nexus':
    port             => '9090',
    nexus_home     => '/srv/nexus',


###Public Classes

###Private Classes

###nexus::nexus Installs, configure and sets up a nexus service.


#####bundle String. Name of the Nexus distribution which will be downloaded from the distributions_base_url key defined in hiera (see the README of the download_uncompress module) or full URL of the Nexus distribution; in the latter case the value of the key distributions_base_url is ignored. Defaults to nexus-2.11.1-01-bundle.tar.gz

#####package String. Name of the Nexus directory inside the bundle. Defaults to undef so that, if not specified, will be taken from the bundle name stripped from the -bundle.tar.gz part. This parameter is necessary because some versions have a bundle name like nexus-2.9.2-bundle.tar.gz yet have a package name (after extraction) like nexus-2.9.2-01.

#####port Integer. Port where the Nexus web app will be listening. Defaults to 8081.

#####storage_loc String. Path of the root directory where Nexus OSS will store the Maven repositories. Defaults to /var/lib/sonatype-work.


At the moment the module targets only OpenJDK on Ubuntu platforms. Specifically, it is tested only on Ubuntu 12.04 distributions, although probably it will work also on more recent versions.

If a full url is specified as the bundle parameter it is necessary to have the module download_uncompress version 1.1.0 or above.

The file name of the distribution is expected to be in the standard form: nexus-XX.YY.ZZ-INC-bundle.tar.gz where -INC is optional.


If you need some feature please send me a (pull) request or send me an email at: dsestero 'at' gmail 'dot' com.