Skip to content

Instantly share code, notes, and snippets.

@supercow
Last active December 15, 2015 21:09
Show Gist options
  • Save supercow/5323453 to your computer and use it in GitHub Desktop.
Save supercow/5323453 to your computer and use it in GitHub Desktop.
# /etc/puppetlabs/puppet/users/init.pp
class users {
$users_list = hiera('users::users_list')
users::user { $users_list: }
}
node 'nfs01' {
include ntp
package { "iptraf" : ensure => installed }
package { "mailx" : ensure => installed }
file { "/etc/motd":
source => "puppet:///files/motd"
}
file { "/usr/local/scripts/setpassword.sh":
source => "puppet:///files/setpassword.sh"
}
include users
}
node 'nfs01' {
include ntp
package { "iptraf" : ensure => installed }
package { "mailx" : ensure => installed }
file { "/etc/motd":
source => "puppet:///files/motd"
}
file { "/usr/local/scripts/setpassword.sh":
source => "puppet:///files/setpassword.sh"
}
users::user { 'username':
groups => ['wheel'],
ssh_key => 'AWFawevkjhawefAWEFhawefkjnwefAWEawGAHWEfa==',
uid => '12345',
}
}
# /etc/puppetlabs/puppet/modules/users/user.pp
define users::user(
$groups = hiera("users::groups_${name}", ['wheel']),
$uid = hiera("users::uid_${name}"),
$ssh_key = hiera("users::sshkey_${name}"),
) {
add_user { $name:
email => $email,
uid => $uid,
groups => $groups,
}
add_ssh_key { $name:
key => $ssh_key,
type => "ssh-dss"
}
file { "/home/$name/.bashrc":
source => "puppet:///files/bash_rc",
owner => $name,
group => $name
}
file { "/home/$name/.bash_profile":
source => "puppet:///files/bash_profile",
owner => $name,
group => $name
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment