class Ssh_config

Public Instance Methods

deploy() click to toggle source
# File lib/dust/recipes/ssh_config.rb, line 4
def deploy
  return unless install
  @config = @config.deep_merge(default_config)
  @node.write('/etc/ssh/ssh_config', generate_ssh_config)
end

Private Instance Methods

default_config() click to toggle source
# File lib/dust/recipes/ssh_config.rb, line 20
def default_config
  { 'Host *' =>
    {
      'ForwardX11Trusted' => 'yes',
      'SendEnv' => [ 'LANG LC_*', 'XMODIFIERS' ],
      'HashKnownHosts' => 'yes',
      'GSSAPIAuthentication' => 'yes',
      'GSSAPIDelegateCredentials' => 'no'
    }
  }
end
generate_ssh_config() click to toggle source
# File lib/dust/recipes/ssh_config.rb, line 32
def generate_ssh_config
  ssh_config = ''
  @config.each do |key, value|

    # hashes are blocks, indent them
    if value.is_a? Hash
      ssh_config << "#{key}\n"
      value.each do |k, v|
        Array(v).each { |x| ssh_config << "    #{k} #{x}\n" }
      end
    else
      Array(value).each { |x| ssh_config << "#{key} #{x}\n" }
    end
  end
  ssh_config
end
install() click to toggle source
# File lib/dust/recipes/ssh_config.rb, line 13
def install
  return @node.install_package('openssh-client') if @node.uses_apt?
  return @node.install_package('openssh-clients') if @node.uses_rpm?
  return @node.install_package('openssh') if @node.uses_pacman?
  false
end