天天看點

puppet運維自動化之使用者管理

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,
}      

繼續閱讀