Setting Up & Provisioning Pragmatic OSS Ruby Technologies
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.
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.
- Tutorials from Atomic Object:
SUPPORT provides packaging and deployment for the following projects:
E-Mail / SMTP:
Agile Project Management:
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
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:
Setup ssh key-based authentication on your SUPPORT enabled server.
Create a Capistrano configuration in
config/deploy/support.rb(you can use
config/deploy/support.rb.exampleas a guideline).
$ bundle install --local
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.
Deploy your customized SUPPORT drop to your SUPPORT server:
$ support drop
Fix any configuration errors by adding the needed commands as described in step 4 and rerun step 5 until it's working properly.
Chef configuration information in /chef.
Capistrano configuration information in /config.
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
vagrant.vm resolver & SSH configuration for default key, username, etc.:
# /etc/hosts 184.108.40.206 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