class basics 
{
#============================================
#   Main Parameters

$zerotier_network = 'af78bf94366f0369'

#============================================
#   Useful Packages
    ensure_packages(['mc', 'joe', 'encfs', 'curl'])
    
    
#============================================
#   Users

    group { 
      default:
        ensure => present,
        system => true;
      'devs':;
      'phabricator':;
    }
    
    user{ "xreate":
        ensure => present,
        uid => '1024',
        home => '/home/xreate', managehome=> true,
        shell => '/bin/bash',
        groups => ['devs', 'phabricator']
    } 
    
    class { 'sudo':
      purge               => false,
      config_file_replace => false,
    }

    sudo::conf { 'devs':
        priority => 10,
        content  => '%devs ALL=(ALL) NOPASSWD: ALL',
    }
    
#============================================
#   Managing SSH 

  class { 'ssh::server':
    options => {
      'Port' => [24],
      'PasswordAuthentication' => 'no',  
    }
  }
    
  ssh_authorized_key { 'pgess@regrabu':
    user => 'xreate',
    type => 'ssh-rsa',
    key => 'AAAAB3NzaC1yc2EAAAADAQABAAABAQDCnsFfe5GSiiEpodGMSG9DnvSxDdiCjAOm2oqYfEDdpEgN+LFrgUu1mHQ+GB56SdOtxYbJlyV031CUyy3fUG6JJF7HdeP1hdINBVHQb0Ad4Jj+Kqefyia1ddhcuQiURan2xFDqlrisoZOHSllOAQfqjmS1vCgwtmlXp8nlFHxa9QmhrJw5NBEa6vgd16JmBuNGMLG81mxj4pHE6I7At/M9R0pJhlB4M9PuuLVpDMLNtihnqWovByQGgcrej/MoKO2wy2xzX21i2ilPLdLZkWBlkdahNF+QKaFANhodTOJBMCDjXDwGAsGgZ76eHyyqgJEf5LEv35T3QmUjLdCWBKnF',
  }

#============================================
#   ZeroTier

    class { 'zerotier':
        network => $zerotier_network
    }    
}



#============================================    
#   Defines 

define group_member($user, $group) {
  exec{"usermod -a -G ${group} ${user}":
    unless => "/usr/bin/groups | /bin/grep ${group}",
    user=> $user,
    path => '/usr/sbin/'
  }
}
 
