puppet系列之user模塊

需求如下:

現有服務器a,b,c 三臺;用戶dev1,dev2,dev3屬於dev組中,用戶sa1,sa2,sa3屬於wheel組;

用戶dev1能登陸到服務器a,而dev2,dev3無法登陸,而wheel組成員均可登陸;

相同的服務器b只允許用戶dev2和wheel成員登陸,服務器c只允許dev3和wheel成員登陸;

架構如下:

文件相關內容如下:

  1. 1,init.pp  

  2. class user {  

  3.        include user::adduser  

  4.        import "deluser.pp"  

  5. }  

  6. 2,adduser.pp  

  7. class user::adduser {  

  8.      @user {"dev1":    #dev2,dev3類似  

  9.             ensure  => present,  

  10.             shell   => "/bin/bash",  

  11.             tag     => ['dev'],  

  12.             groups  => dev,  

  13.             require => Group['dev'],  

  14.             managehome  => true,  

  15.             password => '$1$M05yB1$vG/M/Spm30cTHeuADYX2M/',  

  16.      }  

  17.      @user {"sa1":    #sa2,sa3類似  

  18.             ensure  => present,  

  19.             shell   => "/bin/bash",  

  20.             tag     => [''sa],  

  21.             groups  => dev,  

  22.             require => Group['wheel'],  

  23.             managehome  => true,  

  24.             password => '$1$M05yB1$vG/M/Spm30cTHeuADYX2M/',  

  25.      }  

  26.      group {"dev":  

  27.             ensure  => present,  

  28.      }  

  29. }  

  30. 3,deluser.pp

  31. define user::deluser (

  32.        $username

  33.        )

  34.        {

  35.          user {"$username":

  36.                ensure  => absent,

  37.        }

  38.          file {"/home/$username":

  39.                ensure  => absent,

  40.          }

  41. }

注意下,puppet也支持ssh密鑰認證,可以去官網看下,這裏還是用密碼

密碼創建的方式如下:grub-md5-crypt

使用方法如下:

  1. node 'server1' {

  2.        include user    

  3.        realize user['dev1']     ## 單獨創建dev1

  4.        user::deluser{"userdel sa1":   ##刪除sa1  

  5. username  => sa1,

  6.        }

  7.        User <| groups == wheel |>  ##創建所有wheel成員

  8. }

  9. 前提記得 還是要在modules.pp裏面import "user"

github地址:https://github.com/vTNT/puppet-user  不定期更新 - -

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章