puppet运维自动化之用户管理

2012-05-05 21:22 sky mysqlops.com 字号:T | T

puppet运维自动化之用户管理_puppet

系统管理员离不开账户管理,账户管理,密码管理,开发机器,测试机器,线上机器,都需要创建用户,并给与相关用户的权限。你如果要创建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,
}

总结:用户和密码跟系统管理员关系密切,管理用户的切不可马虎。方便快捷,实用的管理才是王道。