Forge Home


This Puppet module manages Nexus OSS Maven repository (


7,211 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.0 (latest)
  • 1.0.0
released Jul 13th 2016
This version is compatible with:
  • Puppet Enterprise 2023.3.x, 2023.2.x, 2023.1.x, 2023.0.x, 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 '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.