Skip to content

leewilson86/puppet-nexus

This branch is 1 commit behind hubspotdevops/puppet-nexus:master.

Folders and files

NameName
Last commit message
Last commit date
Nov 7, 2018
Oct 27, 2016
Aug 17, 2017
Mar 17, 2015
Sep 25, 2016
Sep 25, 2016
Nov 3, 2016
Sep 30, 2016
Mar 17, 2015
Sep 29, 2016
Sep 25, 2016
Oct 27, 2017

Repository files navigation

Sonatype Nexus Puppet module Build Status

Install and configure Sonatype Nexus.

Requires

  • maestrodev/wget
  • puppetlabs/stdlib

Usage

The following is a basic role class for building a nexus host. Adjust accordingly as needed.

NOTE: you must pass version to Class['nexus']. This is needed for the download link and determining the name of the nexus directory.

class role_nexus_server {

  # puppetlabs-java
  # NOTE: Nexus requires
  class{ '::java': }

  class{ '::nexus':
    version    => '2.8.0',
    revision   => '05',
    nexus_root => '/srv', # All directories and files will be relative to this
  }

  Class['::java'] ->
  Class['::nexus']
}

NOTE: If you wish to deploy a Nexus Pro server instead of Nexus OSS set deploy_pro => true

Usage(draft): Nexus 3 support

class role_nexus_server {

  class{ '::nexus':
    version               => '3.0.0',
    revision              => '03',
    download_site         => 'http://download.sonatype.com/nexus/3',
    nexus_type            => 'unix',
    nexus_work_dir_manage => false
  }

}

NOTE: If you wish to use Nexus 3, nexus_work_dir_manage need to be set to false because this module support only Nexus 3 installation

Nginx proxy

The following is setup for using the jfryman/puppet-nginx module. Nexus does not adequately support HTTP and HTTPS simultaneously. Below forces all connections to HTTPS. Be sure to login after the app is up and head to Administration -> Server. Change the base URL to "https" and check "Force Base URL". The application will be available at:

https://${::fqdn}/nexus/

  class{ '::nginx': }

  file { '/etc/nginx/conf.d/default.conf':
    ensure => absent,
    require => Class['::nginx::package'],
    notify => Class['::nginx::service']
  }

  nginx::resource::vhost { 'nexus':
    ensure            => present,
    www_root          => '/usr/share/nginx/html',
    rewrite_to_https  => true,
    ssl               => true,
    ssl_cert          => '/etc/pki/tls/certs/server.crt',
    ssl_key           => '/etc/pki/tls/private/server.key',
  }

  nginx::resource::location { 'nexus':
    ensure    => present,
    location  => '/nexus',
    vhost     => 'nexus',
    proxy     => "http://${nexus_host}:${nexus_port}/nexus",
    ssl       => true,
  }

TODO

  • Find a way to not require a version to be passed to Class['nexus']

Authors

Copyright

Hubspot, Inc.

About

Puppet module for Sonatype Nexus

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Ruby 51.8%
  • Puppet 46.9%
  • HTML 1.3%