Guest
Public paste!

Untitled

By: a guest | Mar 27th, 2009 | Syntax: Ruby | Size: 1.73 KB | Hits: 84 | Expires: Never
Copy text to clipboard
  1. class admin-user {
  2.  
  3.         define make_user() {
  4.                 user { "$name":
  5.                         ensure => present ,
  6.                         shell => "/bin/bash" ,
  7.                         home => "/home/$name" ,
  8.                         groups => [ sudo, adm ] ,
  9.                         require => [ [File["homedir"]] , [File["sshdir"]] , [File["bashrc"]] , [File["profile"]], [File["bash_logout"]] , [File["authorized_keys"]] ]
  10.  
  11.                         }
  12.  
  13.                 file { "/home/$name":
  14.                         alias => homedir ,
  15.                         ensure => present ,
  16.                         ensure => directory ,
  17.                         recurse => true ,
  18.                         owner => "$name" ,
  19.                         group => "$name" ,
  20.                         #require => [ [User[$name]] , File["sshdir"] ]
  21.                         }
  22.  
  23.                 file { "/home/$name/.ssh":
  24.                         alias => sshdir ,
  25.                         ensure => directory ,
  26.                         owner => "$name" ,
  27.                         group => "$name" ,
  28.                         mode => 700 ,
  29.                         }
  30.  
  31.                 file { "/home/$name/.bashrc":
  32.                         alias => bashrc ,
  33.                         owner => "$name" ,
  34.                         group => "$name" ,
  35.                         source => "puppet:///files/server/etc/skel/bashrc"
  36.                         }
  37.                 file { "/home/$name/.profile":
  38.                         alias => profile ,
  39.                         owner => "$name" ,
  40.                         group => "$name" ,
  41.                         source => "puppet:///files/server/etc/skel/profile"
  42.                         }
  43.                 file { "/home/$name/.bash_logout":
  44.                         alias => bash_logout ,
  45.                         owner => "$name" ,
  46.                         group => "$name" ,
  47.                         source => "puppet:///files/server/etc/skel/bash_logout"
  48.                         }
  49.                 file { "/home/$name/.ssh/authorized_keys":
  50.                         alias => authorized_keys ,
  51.                         source => "puppet:///files/keys/$name" ,
  52.                         mode => 600,
  53.                         owner => "$name" ,
  54.                         group => "$name"
  55.                         }
  56.                }
  57.  
  58.         make_user { [ danh, rahil ]:
  59.         }
  60.  
  61. }