Sha256: 1068de718897be4ed384ea255b154472077ac2c09d5d92a237658a88aff990df

Contents?: true

Size: 1.18 KB

Versions: 9

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}")
    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

9 entries across 9 versions & 1 rubygems

Version Path
fabric-0.4.0 lib/fabric/account.rb
fabric-0.3.6 lib/fabric/account.rb
fabric-0.3.5 lib/fabric/account.rb
fabric-0.3.4 lib/fabric/account.rb
fabric-0.3.3 lib/fabric/account.rb
fabric-0.3.2 lib/fabric/account.rb
fabric-0.3.1 lib/fabric/account.rb
fabric-0.3.0 lib/fabric/account.rb
fabric-0.2.0 lib/fabric/account.rb