Installs and manages your versions of Ruby and Gems in Chef with rbenv and ruby_build
- Chef 10
- Centos / Redhat / Fedora / Ubuntu / Debian
- Ruby >= 1.9
Add a dependency on rbenv to your cookbook's metadata.rb
depends 'rbenv'
To install rbenv and ruby_build; Include each recipe in one of your cookbook's recipes
include_recipe "rbenv::default"
include_recipe "rbenv::ruby_build"
To install rbenv-vars; Include this recipe in one of your cookbook's recipes
include_recipe "rbenv::rbenv_vars"
To install rbenv-binstubs; Include this recipe in one of your cookbook's recipes
include_recipe "rbenv::rbenv_binstubs"
And now to install a Ruby use the rbenv_ruby
LWRP
rbenv_ruby "1.9.3-p194"
If you'd like a specific Ruby installed by rbenv to include a Gem, say bundler, use the rbenv_gem
LWRP
rbenv_gem "bundler" do
ruby_version "1.9.3-p194"
end
Be sure to include a value for the ruby_version
attribute so the gem is installed for the correct Ruby
rbenv[:group_users]
- Array of users belonging to the rbenv grouprbenv[:git_repository]
- Git url of the rbenv repository to clonerbenv[:git_revision]
- Revision of the rbenv repository to checkoutrbenv[:install_prefix]
- Path prefix rbenv will be installed into
ruby_build[:git_repository]
- Git url of the ruby_build repository to cloneruby_build[:git_revision]
- Revision of the ruby_build repository to checkoutruby_build[:prefix]
- Path prefix where ruby_build will be installed to
rbenv_binstubs[:git_repository]
- Git url of the rbenv-binstubs repository to clonerbenv_binstubs[:git_revision]
- Revision of the rbenv-binstubs repository to checkout
Configures a node with a system wide rbenv accessible by users in the rbenv group
Installs ruby_build to a node which enables the rbenv_ruby
LWRP to install Rubies to the node
Installs rbenv-binstubs
Installs an rbenv Ohai plugin onto the node to automatically populate attributes about the rbenv installation
Install specified version of Ruby to be managed by rbenv
Action | Description | Default |
---|---|---|
install | Install the version of Ruby | Yes |
Attribute | Description | Default |
---|---|---|
ruby_version | the ruby version and patch level you wish to install | name |
force | install even if this version is already present (reinstall) | false |
global | set this ruby version as the global version | false |
rbenv_ruby "1.9.2-p290"
rbenv_ruby "Ruby 1.9.3" do
ruby_version "1.9.3-p0"
force true
end
Install specified RubyGem for the specified ruby_version managed by rbenv
Action | Description | Default |
---|---|---|
install | Install the gem | Yes |
upgrade | Upgrade the gem to the given version | |
remove | Remove the gem | |
purge | Purge the gem and configuration files |
Attribute | Description | Default |
---|---|---|
package_name | Name of given to modify | name |
ruby_version | Ruby of version the gem belongs to | |
version | Version of the gem to modify | |
source | Specified if you have a local .gem file to install | |
gem_binary | Override for path to gem command | |
response_file | ||
options | Additional options to the underlying gem command |
rbenv_gem "bundler" do
ruby_version "1.9.2-p290"
end
Safely execute shell commands with RBENV and a particular Ruby activated
Action | Description | Default |
---|---|---|
run | Run the command | Yes |
Attribute | Description |
---|---|
command | The name of the command to be executed |
creates | Indicates that a command to create a file will not be run when that file already exists |
cwd | The current working directory from which a command is run |
environment | A hash of environment variables. These will be automatically merged with the required RBENV environment variables |
group | The group name or group ID that must be changed before running a command |
path | An array of paths to use when searching for a command. These paths will be added to the command's environment $PATH and the required RBENV path variables |
returns | The return value for a command. This may be an array of accepted values. An exception is raised when the return value(s) do not match |
ruby_version | The version of Ruby to activate when running the command |
timeout | The amount of time (in seconds) a command will wait before timing out |
user | The user name or user ID that should be changed before running a command |
umask | The file mode creation mask, or umask |
-
Install the prerequisite gems
$ bundle install
-
Increment the version number in the metadata.rb file
-
Run the Thor release task to create a tag and push to the community site
$ bundle exec thor release
- Jamie Winsor ([email protected])