From 61c653aac054999d26b1f1cda64e87e05bee03cb Mon Sep 17 00:00:00 2001 From: mh Date: Sat, 25 Oct 2008 20:31:44 +0000 Subject: added a generate password function --- manifests/defines.pp | 19 ++++++++++++++++++- plugins/puppet/parser/functions/mkpassword.rb | 7 +++++++ 2 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 plugins/puppet/parser/functions/mkpassword.rb diff --git a/manifests/defines.pp b/manifests/defines.pp index a31dd6a..1a440d6 100644 --- a/manifests/defines.pp +++ b/manifests/defines.pp @@ -113,11 +113,27 @@ define user::define_user( include $sshkey } } + + case $password { + 'absent': { info("not managing the password for user $name") } + default: { + case $operatingsystem { + openbsd: { info("we can't manage passwords on ${operatingsystem} systems -> we ignore it.") } + default: { + include ruby-libshadow + User[$name]{ + password => $password, + require => Package['ruby-libshadow'], + } + } + } + } + } } define user::sftp_only( - + $password = 'absent' ) { include user::groups::sftponly user::define_user{"${name}": @@ -129,6 +145,7 @@ define user::sftp_only( ubuntu => '/usr/sbin/nologin', default => '/sbin/nologin' }, + password => $password, require => Group['sftponly'], } } diff --git a/plugins/puppet/parser/functions/mkpassword.rb b/plugins/puppet/parser/functions/mkpassword.rb new file mode 100644 index 0000000..c7ba8c0 --- /dev/null +++ b/plugins/puppet/parser/functions/mkpassword.rb @@ -0,0 +1,7 @@ +## mkpasswd("password", "12345678") +## needs an 8-char salt *always* +module Puppet::Parser::Functions + newfunction(:mkpasswd, :type => :rvalue) do |args| + %x{/usr/bin/mkpasswd -H MD5 #{args[0]} #{args[1]}}.chomp + end +end -- cgit v1.2.3