0.01
No commit activity in last 3 years
No release in over 3 years
Provisioner for managing servers using ssh in Chef Metal.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 1.5
>= 0
>= 0

Runtime

>= 0
~> 0.12
 Project Readme

Gem Version

ChefMetalSsh

TODO: Write a gem description

Installation

Add this line to your application's Gemfile:

gem 'chef-metal-ssh'

And then execute:

$ bundle

Or install it yourself as:

$ gem install chef-metal-ssh

Usage

  • valid machine options: one of the two is required, ip address is boss if both given

      :ip_address,
      :fqdn - this can be a shortname too as long as it resolves
    
  • valid ssh options

      :auth_methods, 
      :bind_address, 
      :compression, 
      :compression_level, 
      :config,
      :encryption, 
      :forward_agent, 
      :hmac, 
      :host_key,
      :keepalive, 
      :keepalive_interval, 
      :kex, 
      :keys, 
      :key_data,
      :languages, 
      :logger, 
      :paranoid, 
      :password, 
      :port, 
      :proxy,
      :rekey_blocks_limit,
      :rekey_limit, 
      :rekey_packet_limit, 
      :timeout, 
      :verbose,
      :global_known_hosts_file, 
      :user_known_hosts_file, 
      :host_key_alias,
      :host_name, 
      :user, 
      :properties, 
      :passphrase, 
      :keys_only, 
      :max_pkt_size,
      :max_win_size, :send_env, 
      :use_agent
    
  • machine resource example:

      require 'chef_metal_ssh'
      
      with_ssh_cluster("~/metal_ssh")
    
      machine "one" do
        action [:ready, :converge]
        machine_options 'ip_address' => '192.168.33.21',
                        'ssh_options' => {
                          'user' => 'vagrant',
                          'password' => 'vagrant'
                        }
        recipe 'ssh_test::remote1'
        notifies :create, 'machine[two]'
        notifies :run, 'execute[run_touch1]'
      end
    

To test it out, clone the repo:

git clone https://github.com/double-z/chef-metal-ssh.git

in the root there is a Vagrantfile with 3 nodes, 1 master and 2 targets.

FYI, nothing will get installed on your local machine in this process.

Run:

vagrant up

which will bring up all 3 nodes.

So then ssh to the master:

vagrant ssh master

the repo test directory has a test cookbook and run_zero script. its located at /vagrant/test

cd into the test directory:

cd /vagrant/test

then run:

bash run_zero install_local if you built the gem locally first using rake build

otherwise:

bash run_zero install_rubygems

this will install the prereqs. then run:

bash run_zero both

this will run the ssh_test::both recipe which will converge both targets, with target one notifying target two. target one will converge the ssh_test::remote1 recipe, target two the ssh_test::remote2 recipe.

thats it.

party on wayne.

Contributing

  1. Fork it ( http://github.com/double-z/chef-metal-ssh/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 new Pull Request