Forge Home

geminabox

Installs and runs the Gem In A Box rubygem server using thin

16,763 downloads

11,586 latest version

3.9 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.

Support the Puppet Community by contributing to this module

You are welcome to contribute to this module by suggesting new features, currency updates, or fixes. Every contribution is valuable to help ensure that the module remains compatible with the latest Puppet versions and continues to meet community needs. Complete the following steps:

  1. Review the module’s contribution guidelines and any licenses. Ensure that your planned contribution aligns with the author’s standards and any legal requirements.
  2. Fork the repository on GitHub, make changes on a branch of your fork, and submit a pull request. The pull request must clearly document your proposed change.

For questions about updating the module, contact the module’s author.

Version information

  • 1.1.5 (latest)
  • 1.1.4
  • 1.1.3
  • 1.1.2
  • 1.1.1
  • 1.1.0
  • 1.0.1
  • 1.0.0
released Nov 25th 2014

Start using this module

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

Add this module to your Puppetfile:

mod 'maestrodev-geminabox', '1.1.5'
Learn more about managing modules with a Puppetfile

Add this module to your Bolt project:

bolt module add maestrodev-geminabox
Learn more about using this module with an existing project

Manually install this module globally with Puppet module tool:

puppet module install maestrodev-geminabox --version 1.1.5

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.

Download

Documentation

maestrodev/geminabox — version 1.1.5 Nov 25th 2014

geminabox

Installs and manages Gem In A Box

Requirements: rvm (must install rvm using maestrodev/rvm module)

rvm_system_ruby { '1.9':
  ensure      => 'present',
}
class { 'geminabox': }

Parameters:

  • config_dir: the rack application's configuration, where the <service_name>.ru rack config will live
  • data_dir: where geminabox will store all of its data - gems, index, etc.
  • log_file: where the thin logs will be written
  • pid_file: where the thin pidfile will be located
  • service_name: the name of the service (this affects the configuration file, init script, and process name)
  • user: the user to own and run geminabox
  • group: the group to own and run geminabox
  • version: a rubygem-style version, specifying the desired geminabox version
  • port: port on which the geminabox http server will listen
  • thin_options: any additional params to pass to thin (see templates/geminabox.init.erb for what's already set)
  • rvm_path: the path that the rvm binary can be found in
  • rvm_deps: wait for these resource deps before attempting installing the version of ruby we care about via rvm
  • ruby_version: the version of ruby we want to ensure is installed and use in our init script
  • manage_user: whether or not to manage the user resource for the given user
  • manage_group: whether or not to manage the group resource for the given group
  • manage_data_dir: whether or not to manage the data directory (disable if file resource is externally created)
  • manage_config_dir: whether or not to manage the config directory (disable if file resource is externally created)
  • proxy_url: url and port to http proxy for use with rvm (example: http://proxy.domain.tld:80)
  • rubygems_proxy: whether or not to enable the rubygems proxy feature in geminabox
  • allow_remote_failure: whether or not to enable the allow remote failure feature in geminabox

Usage

class { 'geminabox':
  port => '8081',
}

Note that this module defines the 'thin' package, which may conflict with other modules you include.

Credits

Thanks to David Goodlad for the initial puppet module that served as the base for this module