Skip to content

Instantly share code, notes, and snippets.

@ohadlevy
Created May 18, 2009 07:43
Show Gist options
  • Save ohadlevy/113362 to your computer and use it in GitHub Desktop.
Save ohadlevy/113362 to your computer and use it in GitHub Desktop.
USAGE
local_user{"ohad": uid => 1234, gid => 1234,
comment => "Ohad Levy", sudo => true,
}
define local_user ($comment, $ensure = 'present',
$uid, $gid, $homedir = '', $groups = '', $group = '',
$shell = "/bin/bash", $sudo=false )
{
case $homedir {
'': {
$home="/home/${name}"
}
default: { $home=$homedir }
}
user { $name:
allowdupe => false,
comment => $comment,
ensure => $ensure,
gid => $gid,
home => $home,
shell => $shell,
uid => $uid,
groups => $groups ? {
'' => undef,
default => $groups
}
}
case $group {
'': {
group { $name:
allowdupe => false,
ensure => $ensure,
gid => $gid,
}
$real_group = $name
}
default: {
$real_group = $group
}
}
file {
"$home":
ensure => directory,
# keep 0751 to enable public_html acces and similar things
mode => 0701, owner => $name, group => $real_group;
"$home/.toprc":
source => ["$fileserver/users/.toprc.$name",
"$fileserver/users/.toprc"],
mode => 0640, owner => $name, group => $real_group;
"$home/.bashrc":
source => ["$fileserver/users/.bashrc.$name",
"$fileserver/users/.bashrc"],
mode => 0640, owner => $name, group => $real_group;
"$home/.bash_profile":
ensure => link, target => "$home/.bashrc";
"$home/.ssh":
ensure => directory,
mode => 0700, owner => $name, group => $real_group;
"$home/.ssh/authorized_keys":
source => ["$fileserver/users/.ssh/authorized_keys.$name",
"$fileserver/users/.ssh/authorized_keys"],
mode => 0600, owner => $name, group => $real_group;
"$home/.ssh/config":
source => ["$fileserver/users/.ssh/config.$name",
"$fileserver/users/.ssh/config"],
mode => 0600, owner => $name, group => $real_group;
"$home/.vimrc":
source => ["$fileserver/users/.vimrc.$name",
"$fileserver/users/.vimrc"],
mode => 0600, owner => $name, group => $real_group;
}
if $sudo { sudo::nopasswd{$name: name => $name} }
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment