furnish-ssh
Inject SSH remote commands into your provisioning pipeline. See
furnish for information on what
furnish is.
Installation
Add this line to your application's Gemfile:
gem 'furnish-ssh'
And then execute:
$ bundle
Or install it yourself as:
$ gem install furnish-ssh
Usage
SSH requires ip addresses, which implies machines and possibly something like
furnish-ip to manage a pool of
them. This example will use AutoIP and Vagrant from
furnish-vagrant.
It doesn't have to be this complicated (and won't be in most cases), this is
just a complete example.
require 'furnish'
require 'furnish/ip'
require 'furnish/provisioners/ip'
require 'furnish/provisioners/vagrant'
require 'furnish/provisioners/ssh'
Furnish.init
sched = Furnish::Scheduler.new
ip = Furnish::IP.new('10.10.10.0/24')
[0, 1].each { |x| ip.allocate("10.10.10.#{x}") }
group = Furnish::ProvisionerGroup.new(
'test',
[
Furnish::Provisioner::AutoIP.new(:ip => ip, :number_of_addresses => 1),
Furnish::Provisioner::Vagrant.new(:box => "precise64", :number_of_machines => 1),
Furnish::Provisioner::SSH.new(
:username => "vagrant",
:password => "vagrant",
:startup_command => "sudo apt-get update; sudo apt-get dist-upgrade -y"
)
]
)
sched << group
sched.run
Contributing
- Fork it
- 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 new Pull Request