Forge Home


A module to create a mirror of rubygems


5,237 latest version

4.6 quality score

Version information

  • 1.1.2 (latest)
  • 1.1.1 (deleted)
  • 1.1.0
  • 1.0.0
  • 0.1.0 (deleted)
released Oct 19th 2017
This version is compatible with:
  • , ,

Start using this module

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

Add this module to your Puppetfile:

mod 'jimmypw-rubygemsmirror', '1.1.2'
Learn more about managing modules with a Puppetfile

Add this module to your Bolt project:

bolt module add jimmypw-rubygemsmirror
Learn more about using this module with an existing project

Manually install this module globally with Puppet module tool:

puppet module install jimmypw-rubygemsmirror --version 1.1.2

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.



jimmypw/rubygemsmirror — version 1.1.2 Oct 19th 2017


Table of Contents

  1. Description
  2. Setup - The basics of getting started with rubygemsmirror
  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.
  6. Development - Guide for contributing to the module


This module will make it possible to mirror rubygems using the rubygems-mirror gem


What rubygemsmirror affects

This module will:-

  • install the rubygems-mirrir gem
  • create the gem user
  • set up the home directory at /var/lib/gem
  • write the configuration to /var/lib/gem/.gem/.mirrorrc
  • configure the cron to sync rubygems

Setup Requirements

This module requires ruby to be installed. This module requires the parent directory to be created.

Beginning with rubygemsmirror

Include the ::rubygemsmirror class.

class { 'rubygemsmirror':
  destination => '/var/www/gems'

By default manage destination will be set to true and gems will be created. /var/www must already exist.

Beginning with rubygemsmirror

class { 'rubygemsmirror':
  destination,        # Required - Where to put the gems
  Boolean $managecron # Optional - manages cron? (true)
  Array   $cronhours  # Optional - when to sync hours ([06, 18])
  managedestination,  # Optional - Attempt to create destination (true)
  user,               # Optional - Who owns files and runs crons (gem)
  userhome,           # Optional - users home dir (/var/lib/gem)
  delete,             # Optional - Delete removed gems (false)
  threads,            # Optional - Download threads (10)
  retries,            # Optional - How many times to retry (3)
  from,               # Optional - Where to mirror gems from ( 
  skiperrors          # Optional - Skip errors (true)