Puppet manifest um einen Benutzer zu erstellen. **In diesem Beispiel existieren auf dem Puppeserver die ssh Schlüsseldateien und werden nicht erzeugt.** \\ \\ # Erstellt einen Benutzer für ... # Es werden die Dateien id_ecdsa, id_ecdsa.pub und authorized_keys benötigt für den Benutzer benötigt. class server_2410::create_user { # Password mit pwgen -n 14 -s -y erstellen und den Hashwert mit openssl passwd -6 erstellen # Passwort ist 123456789 $homebin = "/home/user $userpw = '$6$...123456789' $username = "user" $sshkeys = [ 'id_ecdsa', 'id_ecdsa.pub', ] $module = "modules/server_2410" $msg = "create_user:" # Erstelle die Gruppe user group { "$msg Erstelle die Gruppe $username": name => "$username", } # Erstelle den Benutzer user user { "$msg Erstelle den Benutzer $username": comment => 'Nutzer für ....', name => "$username", gid => "$username", home => "$homebin", password => "$userpw", system => true, require => Group["$msg Erstelle die Gruppe $username"], } # Erstelle den .ssh Ordner für den Remotelogin exec { "$msg Erstelle den .ssh Ordner für den Benutzer $username": path => [ '/usr/bin', ], command => "mkdir -p $homebin/.ssh && chown -R $username:$username $homebin", onlyif => [ "test ! -d $homebin/.ssh", ], } file { "$msg Setze die Rechte für den .ssh von $username": path => "$homebin/.ssh", owner => $username, group => $username, mode => '600', } # Erstelle die passenden ssh Schlüssel $sshkeys.each | $sshkey | { file { "$msg Erstelle den sshkey $sshkey für $username": ensure => present, path => "$homebin/.ssh/$sshkey", owner => $username, group => $username, mode => '600', source => "puppet:///$module$homebin/.ssh/$sshkey", require => File["$msg Setze die Rechte für den .ssh von $username"], } } # Erstellen die authorized_keys Datei file { "$msg Erstelle die authorized_keys Datei für $username": ensure => present, path => "$homebin/.ssh/authorized_keys", owner => $username, group => $username, mode => '600', source => "puppet:///$module$homebin/.ssh/authorized_keys", require => File["$msg Setze die Rechte für den .ssh von $username"], } }