Sha256: a25b19f71ca6d4166577bce634d7fb238389d9b63decb2f9200fec8abe0f2698

Contents?: true

Size: 1.23 KB

Versions: 26

Compression:

Stored size: 1.23 KB

Contents

define :add_keys, :conf => {} do
  config = params[:conf]
  name = params[:name]
  keys = Mash.new
  keys[name] = node[:ssh_keys][name]

  if config[:ssh_key_groups]
    config[:ssh_key_groups].each do |group|
      node[:users].find_all { |u| u.last[:groups].include?(group) }.each do |user|
        keys[user.first] = node[:ssh_keys][user.first]
      end
    end
  end
  
  if config[:extra_ssh_keys]
    config[:extra_ssh_keys].each do |username|
      keys[username] = node[:ssh_keys][username]
    end
  end

  # Made home configurable  
  ssh_dir = "#{node[:users][name][:home] || "/home/#{name}"}/.ssh"

  directory ssh_dir do
    action :create
    owner name
    group config[:groups] ? config[:groups].first.to_s : name
    mode 0755
    not_if { File.exists? ssh_dir }
  end
  
  template "#{ssh_dir}/authorized_keys" do
    source "authorized_keys.erb"
    action :create
    owner name
    group config[:groups] ? config[:groups].first.to_s : name
    variables(:keys => keys)
    mode 0600
    not_if { 
      # To avoid stale handle on NFS mounted homes when writing.
      system "cat #{ssh_dir}/authorized_keys > /dev/null; true"

      defined?(node[:users][name][:preserve_keys]) ? node[:users][name][:preserve_keys] : false }
  end
end

Version data entries

26 entries across 26 versions & 1 rubygems

Version Path
solokit-0.1.17 cookbooks/site/users/definitions/add_keys.rb
solokit-0.1.16 cookbooks/site/users/definitions/add_keys.rb
solokit-0.1.15 cookbooks/site/users/definitions/add_keys.rb
solokit-0.1.14 cookbooks/site/users/definitions/add_keys.rb
solokit-0.1.13 cookbooks/site/users/definitions/add_keys.rb
solokit-0.1.12 cookbooks/site/users/definitions/add_keys.rb
solokit-0.1.11 cookbooks/site/users/definitions/add_keys.rb
solokit-0.1.10 cookbooks/site/users/definitions/add_keys.rb
solokit-0.1.9 cookbooks/site/users/definitions/add_keys.rb
solokit-0.1.8 cookbooks/site/users/definitions/add_keys.rb
solokit-0.1.7 cookbooks/site/users/definitions/add_keys.rb
solokit-0.1.6 cookbooks/site/users/definitions/add_keys.rb
solokit-0.1.5 cookbooks/site/users/definitions/add_keys.rb
solokit-0.1.4 cookbooks/site/users/definitions/add_keys.rb
solokit-0.1.3 cookbooks/site/users/definitions/add_keys.rb
solokit-0.1.2 cookbooks/site/users/definitions/add_keys.rb
solokit-0.1.1 cookbooks/site/users/definitions/add_keys.rb
solokit-0.1.0 cookbooks/site/users/definitions/add_keys.rb
solokit-0.0.9 cookbooks/site/users/definitions/add_keys.rb
solokit-0.0.8 cookbooks/site/users/definitions/add_keys.rb