puppet運維自動化之用戶管理
【導讀】
系統管理員離不開賬戶管理,賬戶管理,密碼管理,開發機器,測試機器,線上機器,都需要創建用戶,并給與相關用戶的權限。你如果要創建100個,1000個賬戶和密碼,你會不會瘋掉,如何在1分鐘完成百上千個賬戶?那就是我們今天的主題,puppet運維自動化之用戶管理。
【基礎回顧】
puppet如何管理用戶(user)資源呢?
利用符合POSIXAPI標準的puppet自帶的私有工具來進行用戶和組管理,puppet不會直接修改/etc/passwd文件
puppet用戶管理特性
- allows_duplicates:支持同樣的用戶擁有同樣的uid
- manages_homedir:管理用戶的home目錄,刪除和新建
- manages_passwords:管理用戶密碼
- manages_solaris_rbac:管理角色和普通用戶
puppet用戶資源管理參數
- allowdupe:是否允許相同的uid用戶存在,可以設置的值為true或者false.
auth_membership:whetherspecifiedauthsshouldbetreatedastheonlyauthsofwhichtheuserisamemberorwhethertheyshouldbemerelybetreatedastheminimummembershiplist.可設置的值是inclusive,minmum.
- auths:指定用戶的認證方式。多個認證方式可用數組列出來。
- comment:用戶的描述。
- ensure:指定用戶是否存在,可以設置的值為present,absent,role.
- gid:用戶的組ID。
- groups:指定該用戶屬于那些組的成員.
- home:用戶的主目錄
key_membership:whetherspecifiedkeyvlauesshouldbetreatedastheonlyattributesoftheuser
- keys:用于solaris,指定key
managehome:指定用戶是否管理home主目錄.
provider
指定用provider,用什么命令來執行用戶操作,可用的provider有:
- directoryserviceOSX上面的用戶管理命令,不詳述,有需求請參考原文檔
- hpuxuseraddhp-ux系統的用戶管理命令
- ldapldap方式管理用戶
- pwfreebsd上面的用戶管理
- user_role_addsolaris上面的用戶管理
- useraddlinux上面的用戶管理
- password:指定用戶的結過MD5加密碼后的密碼。最好以‘’引起來,記著,用單引號,因為經過MD5加密后可能會出$符號。
role_membership:whetherspecifiedrolesshouldbetreatedastheonlyrolesofwhichtheuserisamember.
- role:用戶的角色,多個角色可以用數組來表示。
- shell:用戶登錄后的shell.
- uid:用戶的uid
【測試示例】
1.我要創建一個名為test的用戶.
代碼示例
user{"test": uid=>2000, gid=>2000, home=>"/home/test", shell=>"/bin/bash"; }
注意:puppet在創建用戶的時候,并不會創建用戶的home目錄
2.比如test用戶離職了,需要刪除test用戶
代碼示例:
user{"test": ensure=>"absent", }
3.創建test用戶并管理用戶目錄
代碼示例:
user{"test": ensure=>"present", managehome=>true, }
4.創建test用戶,且讓test用戶是屬于sa組。
代碼示例:
user{"test": ensure=>"present", managehome=>true, groups=>sa, }
注意,用戶所屬的SA組要先創建。
關于如何創建組,在接下來的會為大家講,這里給舉個例子
代碼示例:
group{"sa": ensure=>"present", gid=>3000, }
總結:用戶和密碼跟系統管理員關系密切,管理用戶的切不可馬虎。方便快捷,實用的管理才是王道。