solid

Version: 0.1.6.beta2

master $ solid

****  Welcome to Solid       ******
****  Version 0.1.6.beta2      ****
****  json config file required ****

master $ 

Solid is a CLI that uses ssh to remote into your servers and run chef-solo.

Solid uses Chef 9.8 and Chef-Solo to build servers remotely. Its goal is to be very easy to use. Chef-Solo is a command-line application that can execute the chef recipes once installed on the server. Chef-Solo has to be executed on the server node, but we want to execute it remotely. So "Solid" uses the Net::SSH library to connect securely and run chef-solo. It also checks to see if chef-solo is installed, and if it is not, it installs chef. Solid takes one parameter, a path to a configuration json file. This file contains all the attributes you would like to pass to chef-solo, plus some additional attributes that instruct Solid on how to connect to your server nodes, and the location of your cookbooks.

solid configuration.json

# configuration.json

{
  "servers": ["server1","server2"],
  "ssh-auth": "key",
  "run_list": ["role[name]"],
  "user": "[USER]",
  "group": "[GROUP]"
}

Requirements

  • Ruby
  • RubyGems
  • net/ssh

Install

  gem install solid

Download Source

  http://github.com/jackhq/solid

What is a dna.json file?

It is a file that contains instructions for chef on how to setup and configure your servers, and applications. To learn more go to http://opscode.com

{
  "servers": ["server1","server2"],
  "ssh-auth": "key",
  "run_list": ["role[name]"],
  "user": "[USER]",
  "group": "[GROUP]"
}

How to use

  • Create your dna.json file

  • Make sure it has the following root attributes:

    • servers - array of servers
    • ssh-auth - (key|pwd) - type ssh authentication
    • key - if ssh authentication is key based
    • password - if ssh authentication is pwd based
    • port
  • Execute

    solid dna.json

Note on Patches/Pull Requests

  • Fork the project.
  • Make your feature addition or bug fix.
  • Add tests for it. This is important so I don't break it in a future version unintentionally.
  • Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
  • Send me a pull request. Bonus points for topic branches.

== Copyright

Copyright (c) 2010 Thing-3. See LICENSE for details.