SUPPORT: Setting Up & Provisioning Pragmatic OSS Ruby Technologies
Ruby Shell
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
bin
chef
config
lib
notes
spec
.gitignore
.rspec
.ruby-version
.travis.yml
Berksfile
Capfile
Gemfile
LICENSE.txt
Procfile
README.md
Rakefile
SUPPORT.gemspec
Vagrantfile

README.md

SUPPORT:

Setting Up & Provisioning Pragmatic OSS Ruby Technologies

Build Status Dependency Status Code Climate Stories in Ready

NOTE:

SUPPORT is using Readme Driven Development. The information that follows is the ultimate goals for SUPPORT, but most of it has not yet been implemented. BDD & TDD are being used. Simply run: bundle exec rspec to see what features have been implemented thus far within SUPPORT.

About:

SUPPORT is a CLI gem that enables simple Capistrano enabled Berkshelf Chef cookbook deploys by packaging the source code to common OSS Ruby and Agile management projects and providing cookbooks that install those projects & packages from source (without sudo privileges when possible). SUPPORT is only possible because of the amazing OSS tools that power it.

SUPPORT uses:

SUPPORT provides packaging and deployment for the following projects:

Provisioning:

Git:

Continuous Integration:

Ruby:

Errors:

Logs:

E-Mail / SMTP:

Agile Project Management:

Metrics:

Security:

Usage:

SUPPORT allows you to setup a configuration file (config/support_recipes.toml) that specifies which tools you'd like to run on your SUPPORT server. To find out which OSS projects are available run:

$ support available

To list the packages you've configured for your server run:

$ support ready

To download the source code for all of the projects you've selected as well as their dependencies you simply run:

$ support package

This will result in a file in your current directory named support_drop.tgz.

Copy this file to your internal LAN (this automatically includes the support gem and it's depdency gems).

From within your network where you'll be running your deploy you need to do a few things:

  1. Setup ssh key-based authentication on your SUPPORT enabled server.

  2. Create a Capistrano configuration in config/deploy/support.rb (you can use config/deploy/support.rb.example as a guideline).

  3. Install the SUPPORT gem locally:

     $ bundle install --local
    
  4. Prepare to deploy your SUPPORT drop. In order to do this you'll have to work through some issues as you try to run your deploy and make changes to your environment (hopefully these will be minimal as SUPPORT tries not to assume any more privileges than absolutely required). These custom commands that need to be run should be created in the custom_commands.rb (#TODO: Figure out the real name & location of this file) file so that they are easily repeatable. This file is automically processed at the beginning of each SUPPORT drop and allows you to ensure a consistent environment should your SUPPORT environment expand to additional servers in the future.

  5. Deploy your customized SUPPORT drop to your SUPPORT server:

     $ support drop
    
  6. Fix any configuration errors by adding the needed commands as described in step 4 and rerun step 5 until it's working properly.

Notes

Chef configuration information in /chef.

Capistrano configuration information in /config.

Test Suite

Default Vagrant Setup

In order to run the test suite you'll need to create a custom config/support.toml file or use the following steps to configure your development environment to work with the expected defaults to access a running Vagrant VM with the example configuration file.

Download Vagrant's insecure private key:

$ wget https://raw.github.com/mitchellh/vagrant/master/keys/vagrant -O $HOME/.ssh/id_rsa.vagrant

Setup the vagrant.vm resolver & SSH configuration for default key, username, etc.:

# /etc/hosts
33.33.33.10 vagrant.vm # default vagrant IP
# $HOME/.ssh/config
Host vagrant.vm
  IdentityFile ~/.ssh/id_rsa.vagrant
  Hostname vagrant.vm
  StrictHostKeyChecking no
  UserKnownHostsFile /dev/null
  User vagrant
  LogLevel QUIET

Running the Tests

$ vagrant up
$ bundle install
$ bundle exec rake

Bitdeli Badge