catfish ======= Catfish is a command line tool and set of associated Vagrantfile templates that makes provisioning existing servers with vagrant-managed-servers easy. It is designed from the ground up to be cross-platform, with first class support for Windows, Linux, and Mac. ## Installation Add this line to your application's Gemfile: ```ruby gem 'catfish' ``` And then execute: $ bundle Or install it yourself as: $ gem install catfish ## Usage ### Initialize your repository Initialize a catfish repository in the current directory, which will create a Catfishfile and a Vagrantfile at a minimum. $ catfish init Specify connection options for ssh $ catfish init --ssh-username=YOUR_USERNAME --ssh-private-key-path=YOUR_SSH_KEY_PATH Include two shell provisioners $ catfish init --provisioners=shell --shell-paths=./script/a.sh ./script/b.sh ### Add the target servers in your Catfishfile ```ruby server 'myserver1.mydomain.com' server 'myserver2.mydomain.com' ``` ### Provision your servers $ catfish provision And you can even run the provisioning in parallel $ catfish provision --parallel ### Getting help $ catfish help ## TODO - Puppet provisioner support - Vagrant plugin support in Catfishfile - WinRM support ## Contributing 1. Fork it ( https://github.com/chrisbaldauf/catfish/fork ) 2. Create your feature branch (`git checkout -b my-new-feature`) 3. Commit your changes (`git commit -am 'Add some feature'`) 4. Push to the branch (`git push origin my-new-feature`) 5. Create a new Pull Request