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:
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
Include two shell script provisioners
$ catfish init --shell --shell-paths=./script/a.sh ./script/b.sh
You can template out a puppet repository
$ catfish init --puppet
Initialize a Windows configuration using winrm
$ catfish init --windows
Managed servers
Catfish can also help you manage pre-existing servers that can communicate over
SSH or WinRM. To enable managed mode, make sure to pass the --managed
flag to init
$ catfish init --managed --ssh-username=YOUR_USERNAME --ssh-private-key-path=YOUR_SSH_KEY_PATH
Add the target servers in your Catfishfile
server 'myserver1.mydomain.com'
server 'myserver2.mydomain.com'
Provisioning
$ catfish provision
And you can even run the provisioning in parallel
$ catfish provision --parallel
Plugins
You can have catfish ensure that vagrant plugins are installed via the 'plugin' directive in your Catfishfile.
plugin 'vagrant-hostmaster'
$ catfish plugin
Getting help
$ catfish help
TODO
- Add some spec tests
Contributing
- Fork it ( https://github.com/chrisbaldauf/catfish/fork )
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request