GitHub puppet-rvm
33
33
38
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
Synced
Has a .msync.yml file
Has Modulesync
Is present in voxpupuli/modulesync_config/managed_modules.yml
Released
Is in modulesync_config and in forge releases.
Reference Dot Md
The repository has a REFERENCE.md. It needs to be generated / puppet-strings documentation is missing.

Open Pull Requests

Regexp whole line
merge-conflicts

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'
ernestas@vbox-ubuntu:~/ss$

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

More rvmrc properties
Use `source` in `gemlist`
merge-conflicts

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

Update `gem install` CLI options
merge-conflicts

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

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.

add support for puppet:// as a source to install gem
merge-conflicts

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 {
'mygem':
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',
}

Fixing puppet generate types issue
merge-conflicts

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

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: https://rvm.io/rvm/security instead.

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

modulesync 2.12.0
modulesync
modulesync

modulesync 2.12.0