cookbook 'rvm_fw', '~> 1.0.0'
rvm_fw (11) Versions 1.0.0 Follow0
Installs common ruby packages and RVM via RVM::FW
cookbook 'rvm_fw', '~> 1.0.0', :supermarket
knife supermarket install rvm_fw
knife supermarket download rvm_fw
RVM::FW Edition
RVM::FW works really well to make it possible to use RVM (or rbenv even) inside a restrictive LAN or Firewall just like you do at home.
Setup RVM::FW
-
Clone RVM::FW:
$ git clone git://github.com/stevenhaddox/rvm_fw.git $ bundle install # For Ruby < 1.9.3 RVM::FW runs in production mode only: $ bundle install --without development test
-
Download Rubiez and packages:
$ bundle exec rake boot:strap # Or, to keep pre-downloaded Rubies and just add to them: $ KEEP=true bundle exe rake boot:strap
Archive your local setup of RVM::FW and import it into your network.
Deploy! RVM::FW is a simple Sinatra application so you can deploy it anywhere you have Ruby or Rack available internally!
How to Use RVM::FW Once It's Deployed
View a demo to see RVM::FW's user views & instructions for how to setup and use RVM internally. Obviously there are no rubies due to file-size / RVM itself existing on the real Internet.
Just visit: http(s)://<your_host>:<port>/db
to get a plain-text file that your users need to copy and paste into: ~/.rvm/user/db
. This file overrides the defaults built into RVM's ~/.rvm/config/db
and will point it to your RVM::FW instance to download it's rubies.
You can also visit: http(s)://<your_host>:<port>/known
to get a plain-text file that a user can be put into: ~.rvm/config/known
. This will provide a more a accurate list of available rubies when a user runs rvm list known
.
Easter Egg
Bonus: If you're an rbenv fan but still stuck in a restricted environment you can use RVM::FW as a simple way to host a central location to keep your Ruby source code. Accessing your desired version of Ruby for rbenv is as simple as querying http(s)://<your_host>:<port>/public/rubies/<ruby_platform>/<ruby_specific_path>
. All the Ruby source paths & packages are easily discoverable within the [config/rubies.yml](config/rubies.yml.example) file.
Adding More Rubiez
We're looking into rendering the views for db.erb and known.erb dynamically based upon your custom configuration or the default configuration of [config/rubies.yml](config/rubies.yml.example), but until then you have to manually update and maintain the following files:
- customize config/rubies.yml (defaults to: [config/rubies.yml.example](config/rubies.yml.example))
- update [views/db.erb](views/db.erb)
- update [views/known.erb](views/known.erb)
Any rubies that are found in /public/rubies
will be rendered dynamically in the /rubies
route on the site. The MD5 sums will also be calculated dynamically to ensure users can compare original MD5s vs possibly modified RVM::FW MD5s.
Enterprise Concerns
I've recently hit an issue when trying to import certain rubies into my corporate environment. The virus scanner fails on several files. I've tried to add these files to a flagged_file list in the config folder and written a bash script that will remove those files and repackage the ruby. All of these files seem Rdoc or test related thus far so the only real con is that the MD5 sum of the file changes, but at least it allows for automated importing of rubies for those who may hit similar issues with either the ClamAV or McAfee Enterprise virus scanners.
To remove these files from your packages be sure to add any files you need to your config/flagged_files.txt
file unless you are only using the default rubies.yml file. Then run:
$ ./scripts/enterprisify.sh
This process will take a while as it has to extract each ruby / package file, scan for matching flagged files, remove them and then re-compress or restore the original file as needed.
Development
CSS Styles
Stylesheets are handled via the gems: bootstrap-sass
&& compass
.
To update bootstrap, update the version of bootstrap-sass
and run bundle update
If you modfy the variables (sass/_boostrap_variables.scss
) or the main application styles (sass/_rvmfw.scss
) then be sure to update the generated CSS files with the appropriate environment command:
$ bundle exec compass compile --output-style compressed -e production
$ bundle exec compass compile --output-style nested -e development
I Want to Help!
Add your idea or feature requests to the issue tracker or Fork RVM::FW on GitHub and send me a pull request!
Special Thanks
Special thanks to those who've contributed and helped me maintain RVM::FW over the years.
Dependent cookbooks
build-essential >= 0.0.0 |
apt >= 0.0.0 |
Contingent cookbooks
There are no cookbooks that are contingent upon this one.
rvm_fw CHANGELOG
This file is used to list changes made in each version of the rvm_fw cookbook.
0.1.0
- [Steven Haddox] - Initial release of rvm_fw
Collaborator Number Metric
1.0.0 failed this metric
Failure: Cookbook has 0 collaborators. A cookbook must have at least 2 collaborators to pass this metric.
Contributing File Metric
1.0.0 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must contain a CONTRIBUTING.md file
Foodcritic Metric
1.0.0 failed this metric
FC066: Ensure chef_version is set in metadata: rvm_fw/metadata.rb:1
FC121: Cookbook depends on cookbook made obsolete by Chef 14: rvm_fw/metadata.rb:1
FC122: Use the build_essential resource instead of the recipe: rvm_fw/recipes/default.rb:10
Run with Foodcritic Version 16.3.0 with tags metadata,correctness ~FC031 ~FC045 and failure tags any
No Binaries Metric
1.0.0 failed this metric
Failure: Cookbook should not contain binaries. Found:
rvm_fw/files/default/vendor/gems/ptools-1.3.2/test/img/test.jpg
rvm_fw/files/default/vendor/gems/ptools-1.3.2/test/img/test.gif
rvm_fw/files/default/vendor/gems/ptools-1.3.2/test/img/test.png
rvm_fw/files/default/vendor/cache/ptools-1.3.2.gem
Testing File Metric
1.0.0 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must contain a TESTING.md file
Version Tag Metric
1.0.0 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must include a tag that matches this cookbook version number
1.0.0 failed this metric
1.0.0 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must contain a CONTRIBUTING.md file
Foodcritic Metric
1.0.0 failed this metric
FC066: Ensure chef_version is set in metadata: rvm_fw/metadata.rb:1
FC121: Cookbook depends on cookbook made obsolete by Chef 14: rvm_fw/metadata.rb:1
FC122: Use the build_essential resource instead of the recipe: rvm_fw/recipes/default.rb:10
Run with Foodcritic Version 16.3.0 with tags metadata,correctness ~FC031 ~FC045 and failure tags any
No Binaries Metric
1.0.0 failed this metric
Failure: Cookbook should not contain binaries. Found:
rvm_fw/files/default/vendor/gems/ptools-1.3.2/test/img/test.jpg
rvm_fw/files/default/vendor/gems/ptools-1.3.2/test/img/test.gif
rvm_fw/files/default/vendor/gems/ptools-1.3.2/test/img/test.png
rvm_fw/files/default/vendor/cache/ptools-1.3.2.gem
Testing File Metric
1.0.0 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must contain a TESTING.md file
Version Tag Metric
1.0.0 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must include a tag that matches this cookbook version number
1.0.0 failed this metric
FC121: Cookbook depends on cookbook made obsolete by Chef 14: rvm_fw/metadata.rb:1
FC122: Use the build_essential resource instead of the recipe: rvm_fw/recipes/default.rb:10
Run with Foodcritic Version 16.3.0 with tags metadata,correctness ~FC031 ~FC045 and failure tags any
1.0.0 failed this metric
Failure: Cookbook should not contain binaries. Found:
rvm_fw/files/default/vendor/gems/ptools-1.3.2/test/img/test.jpg
rvm_fw/files/default/vendor/gems/ptools-1.3.2/test/img/test.gif
rvm_fw/files/default/vendor/gems/ptools-1.3.2/test/img/test.png
rvm_fw/files/default/vendor/cache/ptools-1.3.2.gem
Testing File Metric
1.0.0 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must contain a TESTING.md file
Version Tag Metric
1.0.0 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must include a tag that matches this cookbook version number
1.0.0 failed this metric
1.0.0 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must include a tag that matches this cookbook version number