Sha256: ab6ae411a278d747f6a66059ed6dd3047214587f56eb5f1b7865d19185368e0d

Contents?: true

Size: 1.18 KB

Versions: 1

Compression:

Stored size: 1.18 KB

Contents

class Account
  include DataMapper::Resource

  property :id,   Serial
  
  belongs_to :user
  belongs_to :server
  
  def add_user
    self.server.execute_command("sudo /usr/sbin/useradd -m #{self.user.name}")  
  end

  def add_ssh_directory
    self.server.execute_command("sudo mkdir #{self.user.ssh_config_directory_path}")
    self.server.execute_command("sudo chown #{self.user.name} #{user.ssh_config_directory_path}")
    self.server.execute_command("sudo chmod 700 #{self.user.ssh_config_directory_path}")
  end
  
  def write_ssh_key
    self.server.execute_command("sudo touch #{self.user.authorized_keys_file_path}")
    self.server.execute_command("echo '#{self.user.authorized_keys_file}' | sudo tee #{self.user.authorized_keys_file_path}")
    self.set_ssh_key_permissions
  end
  
  def add_to_groups
    self.user.groups.each do |group|
      self.server.execute_command("sudo /usr/sbin/usermod -G#{group.name} #{self.user.name}")
    end
  end
  
  protected
  def set_ssh_key_permissions
    self.server.execute_command("sudo chown #{self.user.name} #{self.user.authorized_keys_file_path}")
    self.server.execute_command("sudo chmod 600 #{self.user.authorized_keys_file_path}")    
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
fabric-0.4.1 lib/fabric/account.rb