• ansible笔记(7)- 系统类模块(下)


    user模块

    主要作用

      user 模块可以帮助我们管理远程主机上的用户,比如创建用户、修改用户、删除用户、为用户创建密钥对等操作。

     

    功能参数及应用举例

      name参数:必须参数,用于指定要操作的用户名称,可以使用别名 user。

    #在test主机上创建名称为test的用户,若用户存在,不进行任何操作
    ansible test -m user -a 'name=test'

      group参数:此参数用于指定用户所在的基本组。

    #在test直击上创建用户名为test,组名为testgroup的用户
    ansible test -m user -a "name=test group=testgroup"

      gourps参数:此参数用于指定用户所在的附加组。注意,如果说用户已经存在并且已经拥有多个附加组,那么如果想要继续添加新的附加组,需要结合 append 参数使用,否则在默认情况下,当再次使用 groups 参数设置附加组时,用户原来的附加组会被覆盖。

      append参数:如果用户原本就存在多个附加组,那么当使用 groups 参数设置附加组时,当前设置会覆盖原来的附加组设置,如果不想覆盖原来的附加组设置,需要结合 append 参数,将 append 设置为 yes,表示追加附加组到现有的附加组设置,append 默认值为 no。

      shell参数:此参数用于指定用户的默认 shell。

    #在test主机上创建shell类型为/bin/bash的test用户
    ansible test -m user -a "name=test shell=/bin/bash"

      uid参数:此参数用于指定用户的 uid 号。

    #在test主机上创建uid为501的test用户
    ansible test -m user -a "name=test uid=501"

      expires参数:此参数用于指定用户的过期时间,相当于设置 /etc/shadow 文件中的的第8列,比如,你想要设置用户的过期日期为2018年12月31日,那么你首先要获取到2018年12月31日的 unix 时间戳,使用命令 “date -d 2018-12-31 +%s” 获取到的时间戳为1546185600,所以,当设置 expires=1546185600 时,表示用户的过期时间为2018年12月31日0点0分,设置成功后,查看远程主机的 /etc/shadow 文件,对应用户的第8八列的值将变成17895(表示1970年1月1日到2018年12月31日的天数,unix 时间戳的值会自动转换为天数,我们不用手动的进行换算),目前此参数只支持在 Linux 和 FreeBSD 系统中使用。

    #指定test70主机上的test用户的过期时间为2021年12月31日,使用"date -d 2021-12-31 +%s"命令可以获取到对应日期的unix时间戳
    ansible test -m user -a 'name=test expires=1640880000'

      comment参数:此参数用于指定用户的注释信息。

      state参数:此参数用于指定用户是否存在于远程主机中,可选值有 present、absent,默认值为 present,表示用户需要存在,当设置为 absent 时表示删除用户。

    #删除test主机上的test用户,不自动删除家目录
    ansible test-m user -a 'name=test state=absent'

      remove参数:当 state 的值设置为 absent 时,表示要删除远程主机中的用户。但是在删除用户时,不会删除用户的家目录等信息,这是因为 remove 参数的默认值为 no,如果设置为yes,在删除用户的同时,会删除用户的家目录。当 state=absent 并且 remove=yes 时,相当于执行 “userdel --remove” 命令。

    #删除test主机上的test用户的同时删除该用户的家目录
    ansible test-m user -a 'name=test state=absent remove=yes'

      password参数:此参数用于指定用户的密码。但是这个密码不能是明文的密码,而是一个对明文密码”加密后”的字符串,相当于 /etc/shadow 文件中的密码字段,是一个对明文密码进行哈希后的字符串,你可以在 python 的命令提示符下输入如下命令,生成明文密码对应的加密字符串。

    import crypt; crypt.crypt('666666')
    输入上述命令后,即可得到明文密码666666对应的加密字符串。

    #将test主机上的test用户的密码设置为123456
    [root@hengda ~]# python
    Python 2.6.6 (r266:84292, Aug 18 2016, 15:13:37) 
    [GCC 4.4.7 20120313 (Red Hat 4.4.7-17)] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import crypt;crypt.crypt('123456')
    '$6$zGj2R/UkWHVms3pu$6MTEXeigmfSDtWADvLqt9C7lFNwVrliYkAu.IbFemkHmo89hTK/pCmSGhxNhYI5aou121/vazCM43M/8O3ab6/'
    
    ansible test -m user -a 'name=test password="$6$zGj2R/UkWHVms3pu$6MTEXeigmfSDtWADvLqt9C7lFNwVrliYkAu.IbFemkHmo89hTK/pCmSGhxNhYI5aou121/vazCM43M/8O3ab6/"'  

      update_password参数:此参数有两个值可选,always 和 on_create,当此参数的值设置为always 时表示,如果 password 参数设置的值与用户当前的加密过的密码字符串不一致,则直接更新用户的密码,默认值即为 always,但是当此参数设置为 on_create 时,如果 password参数设置的值与用户当前的加密过的密码字符串不一致,则不会更新用户的密码字符串,保持之前的密码设定。如果是新创建的用户,即使此参数设置为 on_create,也会将用户的密码设置为 password 参数对应的值。

      generate_ssh_key参数:此参数默认值为 no,如果设置为 yes,表示为对应的用户生成 ssh 密钥对,默认在用户家目录的 ./ssh 目录中生成名为 id_rsa 的私钥和名为 id_rsa.pub 的公钥,如果同名的密钥已经存在与对应的目录中,原同名密钥并不会被覆盖(不做任何操作)。

    #为test主机上的test用户生成ssh密钥对,默认在用户家目录的./ssh目录中生成名为id_rsa的私钥和名为id_rsa.pub的公钥,如果已经存在同名密钥,并不会覆盖原来的密钥,即不做任何操作。
    ansible test -m user -a "name=test generate_ssh_key=yes"

      ssh_key_file参数:当 generate_ssh_key 参数的值为 yes 时,使用此参数自定义生成 ssh 私钥的路径和名称,对应公钥会在同路径下生成,公钥名以私钥名开头,以”.pub”结尾。

    #为test主机上的test用户生成ssh密钥对在/opt目录下,如果已经存在同名密钥,并不会覆盖原来的密钥,即不做任何操作。
    ansible test -m user -a "name=test generate_ssh_key=yes ssh_key_file=/opt"

      ssh_key_comment参数:当 generate_ssh_key 参数的值为 yes 时,在创建证书时,使用此参数设置公钥中的注释信息。但是如果同名的密钥对已经存在,则并不会修改原来的注释信息,即不做任何操作。当不指定此参数时,默认的注释信息为”ansible-generated on 远程主机的主机名”。

      ssh_key_passphrase参数:当 generate_ssh_key 参数的值为 yes 时,在创建证书时,使用此参数设置私钥的密码。但是如果同名的密钥对已经存在,则并不会修改原来的密码,即不做任何操作。

      ssh_key_type参数:当 generate_ssh_key 参数的值为 yes 时,在创建证书时,使用此参数设置密钥对的类型。默认密钥类型为 rsa,但是如果同名的密钥对已经存在,并不会对同名密钥做任何操作。

    group模块

    主要作用

      group 模块可以帮助我们管理远程主机上的组。

    功能参数及应用举例

      name参数:必须参数,用于指定要操作的组名称。 

    #在test主机上创建名称为test,id为501的组
    ansible test -m group -a 'name=test gid=501'

      state参数:用于指定组的状态,两个值可选,present,absent,默认为 present,设置为absent 表示删除组。 

    #删除test主机中存在名为test的组,删除成功的前提是不能有用户把被删除的组当成主组。
    ansible test -m group -a 'name=test  state=absent'

      gid参数:用于指定组的gid。

  • 相关阅读:
    单变量线性回归
    【记】国奖交流会
    转【研究生第一篇学术论文常犯问题总结】
    this.$confirm里面使用await异步调取接口数据
    margin和padding的值是百分比的时候是怎么计算的?
    原生js实现三级联动下拉框
    两个数组里面的对象元素根据相同的id合并到一个数组
    制作遮罩层的样式
    自定义表单验证方法的使用
    封装获取操作系统和浏览器类型的方法
  • 原文地址:https://www.cnblogs.com/ltlinux/p/12882968.html
Copyright © 2020-2023  润新知