GitHub puppet-rvm
A puppet module for installing and using RVM (Ruby Version Manager)

Metadata Valid
No translation
Correct Puppet Version Range
Supported Puppet version range is %{PUPPET_VERSION_RANGE}
With Puppet Version Range
Puppet version range is present in requirements in metadata.json
With Operatingsystem Support
No translation
Supports Only Current Centos
No translation
Supports Latest Centos
No translation
Supports Only Current Debian
No translation
Supports Latest Debian
No translation
Supports Only Current Ubuntu
No translation
Supports Latest Ubuntu
No translation
In Modulesync Repo
No translation
In Plumbing
Is in plumbing
Has Secrets
Has a .sync.yml file
Has a .msync.yml file
Has Modulesync
Is present in voxpupuli/modulesync_config/managed_modules.yml
Is in modulesync_config and in forge releases.
Reference Dot Md
The repository has a It needs to be generated / puppet-strings documentation is missing.

Open Pull Requests

Support environment isolation by removing lambdas from title patterns

See #162

This seems to result in a noop in our environment. Going to do a little more testing but thought I'd start the discussion.

Fixing puppet generate types issue

This fix will ensure Puppet can generate all types for this module to ensure environment isolation can be set up.

Update `gem install` CLI options

gem 3.0 dropped support for --no-rdoc --no-ri.
We must use --no-document instead.

More rvmrc properties
add support for puppet:// as a source to install gem

Hi, I added the possibility to load gems from a puppet filemount. Please review.

Have your gem in /modules/mygeminstaller/files/mygem-1.0.0.gem

rvm_gem {
name => 'mygem',
ruby_version => 'ruby-2.0.0',
ensure => '1.0.0',
require => Rvm_system_ruby['ruby-2.0.0'],
source => 'puppet:///modules/mygeminstaller/mygem-1.0.0.gem',

Simplify the way we ensure curl

At the moment if the package curl is already defined somewhere else, the dependency between system-rvm and curl isn't set properly.

Also there is no point in checking whether the package curl defined before doing an ensure packages.

Instead, just before doing the curl, we do an ensure packages (this way we only do it when necessary), and now the system-rvm exec requires the curl package.

Regexp whole line

I was constantly running into issues when using this Puppet module (using puppet apply) inside a Ruby project folder containing .ruby-version file. RVM parses this file while checking what version of Ruby it should use and sadly, it also does that while running /usr/local/rvm/bin/rvm. The problem is that, if Ruby version defined in .ruby-version is not installed, current version of RVM Puppet module will not detect that, because calling /usr/local/rvm/bin/rvm from inside a Ruby project folder would give something like this:

ernestas@vbox-ubuntu:~/ss$ /bin/sh -c '/usr/local/rvm/bin/rvm list strings'
ruby-2.3.0 is not installed.
To install do: 'rvm install ruby-2.3.0'

Not only that, it can produce other warnings like:

$ rvm list strings
Warning! PATH is not properly set up, '/usr/local/rvm/gems/ruby-2.3.1/bin' is not at first place,
usually this is caused by shell initialization files - check them for 'PATH=...' entries,
it might also help to re-add RVM to your dotfiles: 'rvm get stable --auto-dotfiles',
to fix temporarily in this shell session run: 'rvm use ruby-2.3.1'.

Sadly, not all of the warnings go to stderr, thus, it's not an option to just ignore stderr. We need to check for Ruby versions only from the beginning of a line.

Update Debian to support versions 9 & 10
Drop EoL Puppet 5
puppetlabs/stdlib: Allow 7.x
Update supported Ubuntu versions to 18.04 & 20.04
Chain of exec's instead of curl | bash

If I understand correctly, the module currently relies on a script it downloads to call for verification.

I propose to download the installer and the detached key, verify and install as described here: instead.

It is a bit procedural and maybe not the best style but it beats piping unverified code to bash IMO.

Use `source` in `gemlist`

When ensure => latest, gemlist is called to determine the latest
available version of a gem.

If the source parameter is a remote gem repository, this needs to be
part of the gem list command run.

Fixes #128

modulesync 4.1.0

modulesync 4.0.0

Drop EOL EL4, EL5 and EL6

Thank you for contributing to this project!


Pull Request (PR) description

Replace this comment with a description of your pull request.

This Pull Request (PR) fixes the following issues

Replace this comment with the list of issues or n/a.
Use format:
Fixes #123
Fixes #124