Giter Site home page Giter Site logo

cookbook-rvm_fw's Introduction

rvm_fw Cookbook

This is a very opinionated and simple cookbook for utilizing an RVM::FW server instance and installing a default Ruby via RVM.

Requirements

packages

  • build_essential - RVM needs compiling tools to install ruby from source

Attributes

  • ['rvm_fw']['path'] = nil (String) - Custom path for where to install RVM, overrides RVM default paths
  • ['rvm_fw']['user'] = 'root' (String) - User to install RVM as: root for system-wide, normal install otherwise
  • ['rvm_fw']['url'] = nil (String) - RVM::FW server URL (e.g., 'http://rvm-fw.herokuapp.com')
  • ['rvm_fw']['version'] = '1.18.14' (String) - RVM::FW provided RVM version
  • ['rvm_fw']['global_ruby'] = 'ruby-2.2.2' (String) - Default Ruby version to install via RVM
  • ['rvm_fw']['disable_requiretty'] = false [True, False] - Enable the cookbook to disable requiretty setting in the /etc/sudoers file

Usage

rvm_fw::default

Include rvm_fw in your node's run_list:

{
  "name":"my_node",
  "run_list": [
    "recipe[rvm_fw]"
  ]
}

Notes

Using RVM installed Ruby Binaries

RVM automatically generates wrappers for each ruby installed through it. These wrapper binaries are perfect cronjobs, library dependencies, etc.

Binaries are found in the following location:

#{node['rvm_fw']['path']}/wrappers/default

And are available for the following commands:

  • ruby
  • gem
  • rake
  • irb
  • rdoc
  • ri
  • erb
  • testrb

RHEL Distros & requiretty

In older (and SELinux enabled) distributions based on RHEL you'll often encounter a setting in /etc/sudoers that sets Defaults requiretty. This setting doesn't provide a lot of added security and is actually disabled in most newer distros.

This cookbook will change the setting to Defaults !requiretty if you want it to. This will prevent an error encountered on nodes with it enabled, but you have to explicitly enable it with the following attribute setting:

['rvm_fw']['disable_requiretty'] = true

Once you've set that attribute value to true the cookbook will modify requiretty so that the cookbook won't error when running.

Testing Notes

Tests are currently integration tests with test-kitchen:

bundle exec kitchen test

In order to test this cookbook you'll need to point to or setup an RVM::FW instance and set the following environment variables:

  • RVM_FW_URL: The RVM::FW server you will use to install RVM from
  • RVM_FW_USER: The user to install RVM as (root, or vagrant) for example.

Contributing

  1. Fork the repository on Github
  2. Create a named feature branch (like add_component_x)
  3. Add specs for your feature
  4. Write your change
  5. Run the tests, ensuring they all pass
  6. Submit a Pull Request using Github

License and Authors

Authors: Steven Haddox

cookbook-rvm_fw's People

Contributors

stevenhaddox avatar

Watchers

Greg Ziskind avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.