puppet運維自動化之使用者管理
2012-05-05 21:22 sky mysqlops.com 字号:T | T
系統管理者離不開賬戶管理,賬戶管理,密碼管理,開發機器,測試機器,線上機器,都需要建立使用者,并給與相關使用者的權限。你如果要建立100個,1000個賬戶和密碼,你會不會瘋掉,如何在1分鐘完成百上千個賬戶?那就是我們今天的主題,puppet運維自動化之使用者管理
AD:
【導讀】
系統管理者離不開賬戶管理,賬戶管理,密碼管理,開發機器,測試機器,線上機器,都需要建立使用者,并給與相關使用者的權限。你如果要建立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,
}