【导读】
系统管理员离不开账户管理,账户管理,密码管理,开发机器,测试机器,线上机器,都需要创建用户,并给与相关用户的权限。你如果要创建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, }
总结:用户和密码跟系统管理员关系密切,管理用户的切不可马虎。方便快捷,实用的管理才是王道。