设为首页 收藏本站
查看: 9835|回复: 0

[经验分享] saltstack之用户管理

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-10-8 15:12:58 | 显示全部楼层 |阅读模式
在集中化管理中,用户管理是重要的。

下面是我自己总结salt对用户管理的文档。
一、添加单个用户:
生成密码
openssl passwd -1-salt 'linwangyi'

QQ截图20151218113359.png
user.users文件

[iyunv@salt51 salt]# cat user/useradd.sls
linwangyi:
user.present:
   -fullname: linwangyi D
   - shell:/bin/bash
   -password: '$1$linwangy$PMII.NL0igptfGBV0PtxI1'
   - home:/home/linwangyi
   - uid: 501
   - gid: 501
   - groups:
     -linwangyi
   - require:
     - group:linwangyi
group.present:
   - gid: 501
top.sls文件:

[iyunv@salt51salt]# cat top.sls
base:
'*':
   - soft_install.nginx
   - soft_install.mysql
   - soft_install.php
   - soft_install.tomcat
   - user.useradd
   - user.users
   - user.userpasswd
   - user.userdel
   - user.addsudo
   - user.addgroup
   - user.delgroup


运行结果:


因为有多个.sls文件,如果想单独运行某个的话
salt '*'state.sls xxx

[iyunv@salt51 salt]# salt '192.168.2.99'  state.sls user.useradd
192.168.2.99:
----------
          ID: linwangyi
    Function: group.present
      Result: True
     Comment: Added group linwangyi
     Changes:   
              ----------
省略
              uid:
                  501
              workphone:


Summary
------------
Succeeded: 2
Failed:    0
------------
Total:     2

其它参数:

请参考官方其它参数:http://www.saltstack.cn/projects ... ging_user_with_salt
user.present: 确保指定的账户名存在,并指定其对应的属性. 这些属性包括如下内容:
name: 指定需要管理的账户名.
uid: 指定uid, 如果不设置将配自动分配下一个有效的uid.
gid: 指定默认的组id(group id)
gid_from_name: 如果设置为_True_,默认的组id将自动设置为和本用户同名的组id
groups: 分配给该用户的组列表(a list of groups). 如果组在minion上不存在,则本state会报错. 如果设置会空,将会删除本用户所属的除了默认组之外的其他组
optional_groups: 分配给用户的组列表。 如果组在minion上不存在,则state会忽略它.
home: 关于用户的家目录(home directory).
password: 设置用户hash之后的密码.
enforce_password: 当设置为_False_时,如果设置的_password_与用户原密码不同,将保持原密码不做更改.如果没有设置_password_选项,该选项将自动忽略掉.
shell: 指定用户的login shell。 默认将设置为系统默认shell。
unique: UID唯一,默认为True.
system: 从_FIRST_SYSTEM_UID_和_LAST_SYSTEM_UID_间选择一个随机的UID.




二、批量添加用户:
如果不需要将用户添加到同一组中,可以删除组相关的信息,如果没有该组,可以先添加组:

users.sls文件:

[iyunv@salt51 salt]# cat user/users.sls
{% set users = ['jerry','tom','sunday'] %}
{% for user in users %}
{{ user }}:
user.present:
   - shell: /bin/bash
   - home: /home/{{ user }}
   - password: '$1$linwangy$PMII.NL0igptfGBV0PtxI1'
   - gid: 501
   - groups:
     - linwangyi
   - require:
     - group: linwangyi
{% endfor %}

运行结果:

[iyunv@salt51 salt]# salt '192.168.2.99'  state.sls user.users
192.168.2.99:
----------
          ID: jerry
    Function: user.present
      Result: True
     Comment: New user jerry created
     Changes:   
              ----------
              fullname:

省略                  

Summary
------------
Succeeded: 3
Failed:    0
------------
Total:     3

三、批量修改用户:
生成密码

[iyunv@salt51 salt]# openssl passwd -1
Password:
Verifying - Password:
$1$h6niwjpG$2nAnRib36QUr2wnfYXC4u0

userpasswd.sls文件:
[iyunv@salt51 salt]# cat user/userpasswd.sls
{% set users = ['jerry','tom','sunday'] %}
{% for user in users %}
{{ user }}:
user.present:
   - shell: /bin/bash
   - password: '$1$h6niwjpG$2nAnRib36QUr2wnfYXC4u0'
{% endfor %}
运行结果:
[iyunv@salt51 salt]# salt '192.168.2.99'  state.sls user.userpasswd
192.168.2.99:
----------
          ID: jerry
    Function: user.present
      Result: True
     Comment: Updated user jerry
     Changes:   
              ----------
              passwd:
                  $1$h6niwjpG$2nAnRib36QUr2wnfYXC4u0
----------
省略
------------
Succeeded: 3
Failed:    0
------------
Total:     3
(注明:还可以修改用户其它参数。)
四、批量删除用户:
userdel.sls文件:
[iyunv@salt51 salt]# cat user/userdel.sls
{% set users = ['jerry','tom','sunday'] %}
{% for user in users %}
{{ user }}:
user.present:
   - purge: True  #设置清除用户的文件(家目录)
   - force: True  #如果用户当前已登录,则absent state会失败. 设置force选项为True时,就算用户当前处于登录状态也会删除本用户.
{% endfor %}


运行结果:
查看用户登录:(有一个将删除的用户登录)
[iyunv@salt51 salt]# salt '192.168.2.99' status.w
192.168.2.99:
省略
    ----------
    - idle:
        18:57
    - jcpu:
        2:20
    - login:
        192.168.2.29
    - pcpu:
        0.03s
    - tty:
        pts/0
    - user:
        sunday
    - what:
        0.03s -bash
[iyunv@salt51 salt]# salt '192.168.2.99'  state.sls user.userdel
192.168.2.99:
----------
省略
----------
          ID: sunday
    Function: user.absent
      Result: True
     Comment: Removed user sunday
     Changes:   
              ----------
              sunday:
                  removed

Summary
------------
Succeeded: 3
Failed:    0
------------
Total:     3
[iyunv@salt51 salt]# salt '192.168.2.99' status.w
192.168.2.99:
    ----------
    - idle:
        15:51
    - jcpu:
        1:13
    - login:
        -
    - pcpu:
        0.11s
    - tty:
        tty1
    - user:
        root
    - what:
        0.11s -bash

查看时Sunday用户已经退出,不过登录用户登录在系统中,还可以对系统操作。

五、添加sudo用户:
addsudo.sls文件:
[iyunv@salt51 salt]# cat user/addsudo.sls
/etc/sudoers:
file.append:
   - text:
     - "OPER_SUPER      ALL = KILL,SU,ROOT"
     - "User_Alias OPER_SUPER=linwangyi"
     - "Cmnd_Alias ROOT=/bin/su"
     - "OPER_SUPER ALL =NOPASSWD:ROOT"
运行结果:

[iyunv@salt51 salt]# salt '192.168.2.99'  state.sls user.addsudo
192.168.2.99:
----------
          ID: /etc/sudoers
    Function: file.append
      Result: True
     Comment: Appended 4 lines
     Changes:   
              ----------
              diff:
                  ---  
                  +++  
                  @@ -116,3 +116,7 @@

                   ## Read drop-in files from /etc/sudoers.d (the # here does not mean a comment)
                   #includedir /etc/sudoers.d
                  +OPER_SUPER      ALL = KILL,SU,ROOT
                  +User_Alias OPER_SUPER=linwangyi
                  +Cmnd_Alias ROOT=/bin/su
                  +OPER_SUPER ALL =NOPASSWD:ROOT


Summary
------------
Succeeded: 1
Failed:    0
------------
Total:     1

六、添加用户组:
addgroup.sls文件:
[iyunv@salt51 salt]# cat user/addgroup.sls
devgroup:
group.present:
   - gid: 601

yunwei:
group.present:
   - gid: 602
运行结果:
[iyunv@salt51 salt]# salt '192.168.2.99'  state.sls user.addgroup
192.168.2.99:
----------
          ID: devgroup
    Function: group.present
省略
----------
          ID: yunwei
    Function: group.present
省略
Summary
------------
Succeeded: 2
Failed:    0
------------
Total:     2

[iyunv@salt51 salt]# salt '192.168.2.99'  cmd.run 'grep -E "(devgroup|yunwei)" /etc/group'
192.168.2.99:
    devgroup:x:601:
    yunwei:x:602:
七、删除用户组:
delgroup.sls文件:
[iyunv@salt51 salt]# cat user/delgroup.sls
{% set groups = ['devgroup','yunwei'] %}
{% for group in groups %}
{{ group }}:
group.absent
{% endfor %}

运行结果:
[iyunv@salt51 salt]# salt '192.168.2.99'  state.sls user.delgroup
192.168.2.99:
----------
          ID: devgroup
    Function: group.absent
      Result: True
     Comment: Removed group devgroup
     Changes:   
              ----------
              devgroup:

----------
          ID: yunwei
    Function: group.absent
      Result: True
     Comment: Removed group yunwei
     Changes:   
              ----------
              yunwei:


Summary
------------
Succeeded: 2
Failed:    0
------------
Total:     2

[iyunv@salt51 salt]# salt '192.168.2.99'  cmd.run 'grep -E "(devgroup|yunwei)" /etc/group'
192.168.2.99:




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-25680-1-1.html 上篇帖子: CentOS 安装Saltstack 下篇帖子: saltstack之错误记录(一)(已经解决) 用户
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表