一,ansible的user/group模块的用途:

ansible的user模块用来实现:生成用户、删除用户等用户的管理
ansible的group模块用来实现:生成组、删除组等组的管理

说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest

对应的源码可以访问这里获取: https://github.com/liuhongdi/

说明:作者:刘宏缔 邮箱: 371125307@qq.com

二,group模块的使用例子

1,创建一个组

#name=lhd  组名

# system=yes   系统组

[liuhongdi@centos8 work]$ ansible yujian -m group -a "name=lhd  system=yes" --become  --become-method=sudo --become-user=root

说明:系统组是和系统用户相对应的,id值1-999,

目的是为了能够让后台进程或服务类进程以非管理员的身份运行

2,删除一个组

#state=absent    删除操作

[liuhongdi@centos8 work]$ ansible yujian -m group -a "name=lhd state=absent" --become --become-method=sudo --become-user=root

3,修改一个group的gid

[liuhongdi@centos8 work]$ ansible yujian -m group -a "name=lhd gid=1008" --become --become-method=sudo --become-user=root

三,user模块的使用例子

1,创建一个用户

#name : 用户名

#group : 指定所属的组

#home: home目录

#shell:  登录后使用的shell,如果指定 /sbin/nologin表示不允许从shell登录

#说明: 开ftp账号时因为不允许登录到shell会指定shell为/sbin/nologin

[liuhongdi@centos8 work]$ ansible yujian -m user -a "name=lhd group=lhd home=/home/lhdtest shell=/sbin/nologin" --become  --become-method=sudo --become-user=root

登录到受控端查看效果

[root@blog ~]# grep lhd /etc/passwd
lhd:x:1004:1008::/home/lhdtest:/sbin/nologin

查看目录

[root@blog ~]# ls /home/lhdtest/

2,删除一个用户(仅删除用户信息,保留其home目录)

#state=absent: 删除用户

[liuhongdi@centos8 work]$ ansible yujian -m user -a "name=lhd state=absent" --become  --become-method=sudo --become-user=root

3,删除一个用户(删除用户信息的同时也删除其home目录)

#remove=yes:   移除home目录

[liuhongdi@centos8 work]$ ansible yujian -m user -a "name=lhd state=absent remove=yes" --become  --become-method=sudo --become-user=root

4,创建用户时指定密码:

用python生成一个原文是 123456 的字符串

[liuhongdi@centos8 work]$ python3 -c 'import crypt,getpass;pw="123456";print(crypt.crypt(pw))'
$6$Hs0KYj1vDFltM37B$JNPe0EQ2IhgfbEVivr/ezcfLsYSj63/Tof.05xcF508izVlcx3plCXQvKCBxw1NFIM3LNWqvmJvSn.QeAw/291

#password   加密过的密码

[liuhongdi@centos8 work]$ ansible yujian -m user -a 'name=lhd group=lhd password="$6$Hs0KYj1vDFltM37B$JNPe0EQ2IhgfbEVivr/ezcfLsYSj63/Tof.05xcF508izVlcx3plCXQvKCBxw1NFIM3LNWqvmJvSn.QeAw/291"' --become --become-method=sudo --become-user=root

用ssh测试登录,看是否生效

[root@centos8 ~]# ssh -p 12888 lhd@121.122.123.47

5,移动一个用户的home目录到新目录

说明:我们把用户lhd的home目录从/home/lhd迁移到/home/lhd_new

登录到受控端查看目录:

[root@blog ~]# ls /home/lhd
lhd.txt

#move_home=yes 移动home目录

[liuhongdi@centos8 work]$ ansible yujian -m user -a 'name=lhd move_home=yes home=/home/lhd_new/' --become  --become-method=sudo --become-user=root

再次登录到受控端查看目录:

[root@blog ~]# ls /home/lhd
ls: cannot access '/home/lhd': No such file or directory
[root@blog ~]# ls /home/lhd_new/
lhd.txt

6,生成密钥对

#generate_ssh_key=yes  生成密钥对

#ssh_key_type=rsa   指定加密算法类型为rsa,可以不指定,默认值也是rsa

[liuhongdi@centos8 work]$ ansible yujian -m user -a 'name=lhd generate_ssh_key=yes ssh_key_type=rsa' --become  --become-method=sudo --become-user=root

登录到受控端查看密钥文件:

[root@blog ~]# ll /home/lhd_new/.ssh/
total 8
-rw------- 1 lhd lhd 2610 Apr 20 19:05 id_rsa
-rw-r--r-- 1 lhd lhd 579 Apr 20 19:05 id_rsa.pub

7,生成密钥对时指定路径

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

[liuhongdi@centos8 work]$ ansible yujian -m user -a 'name=lhd generate_ssh_key=yes ssh_key_type=rsa ssh_key_file=/home/lhd_new/key/id_rsa_ding' --become  --become-method=sudo --become-user=root

8,给用户修改密码

update_password参数:两个值可选,always 和 on_create,默认值:always

值=always: 如果 password 参数设置的值与用户当前的加密过的密码字符串不一致,直接更新用户的密码。

值=on_create: 如果 password参数设置的值与用户当前的加密过的密码字符串不一致,则不会更新用户的密码字符串,保持之前的密码设定。

如果是新创建的用户,即使此参数设置为 on_create,也会将用户的密码设置为 password 参数对应的值

生成加密后的密码

[root@centos8 ~]# python3 -c 'import crypt,getpass;pw="12345678";print(crypt.crypt(pw))'
$6$TkTobLpZ54Qytu8X$vN9RTz.URTtL0F3AZXD165N/cpOd3Ysf7l2uDEJBHvw3jXFKX5rtSblLlLQXEK9EMPZDPW62d7ZLxVt2p6TII/

更新密码

[root@centos8 ~]# ansible yujian -m user -a 'name=lhd update_password=always password="$6$TkTobLpZ54Qytu8X$vN9RTz.URTtL0F3AZXD165N/cpOd3Ysf7l2uDEJBHvw3jXFKX5rtSblLlLQXEK9EMPZDPW62d7ZLxVt2p6TII/"' --become  --become-method=sudo --become-user=root

注意password的值用双引号包括起来

测试是否可以登录:

[liuhongdi@centos8 ~]$ ssh -p 12888 lhd@121.122.123.47

四,user模块的其他参数:

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

ssh_key_comment参数:generate_ssh_key 参数的值=yes 时,在创建证书时,使用此参数设置公钥中的注释信息。

如果同名的密钥对已经存在,则并不会修改原来的注释信息,即不做任何操作。

当不指定此参数时,默认的注释信息为”ansible-generated on 远程主机的主机名”。

ssh_key_passphrase参数:generate_ssh_key 参数的值=yes 时,在创建证书时,使用此参数设置私钥的密码。

如果同名的密钥对已经存在,则并不会修改原来的密码,即不做任何操作

五,查看ansible版本

[root@centos8 liuhongdi]# ansible --version
ansible 2.9.5

ansible用user/group模块管理受控机上的用户和组(ansible2.9.5)的更多相关文章

  1. ansible使用file模块管理受控机的目录与文件(ansible2.9.5)

    一,ansible的file模块的用途 file 模块实现对文件的基本操作. 例如: 创建文件或目录 删除文件或目录 修改文件权限等 说明:刘宏缔的架构森林是一个专注架构的博客,地址:https:// ...

  2. 管理Linux服务器的用户和组

    管理Linux服务器的用户和组 Linux操作系统是一个多用户多任务的操作系统,允许多个用户同时登录到系统,使用系统资源. 为了使所有用户的工作顺利进行,保护每个用户的文件和进程,规范每个用户的权限, ...

  3. 2017.2.20 activiti实战--第五章--用户与组及部署管理(一)用户与组

    学习资料:<Activiti实战> 第五章 用户与组及部署管理(一)用户与组 内容概览:讲解activiti中内置的一套用户.组的关系,以及如何通过API添加.删除.查询. 5.1 用户与 ...

  4. ansible使用script模块在受控机上执行脚本(ansible2.9.5)

    一,ansible的script模块的用途 script 模块用来在远程主机上执行 ansible 管理主机上的脚本, 即:脚本一直存在于 ansible 管理主机本地, 不需要手动拷贝到远程主机后再 ...

  5. ansible使用shell模块在受控机上执行命令(ansible2.9.5)

    一,ansible的shell模块和command模块的区别? shell模块:在远程主机上执行主控端发出的shell/python脚本 command模块:不能调用shell指令,没有bash的环境 ...

  6. ansible通过yum/dnf模块给受控机安装软件(ansible2.9.5)

    一,使用yum/dnf模块要注意的地方: 使用dnf软件安装/卸载时,需要有root权限, 所以要使用become参数 说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnb ...

  7. 管理Linux服务器的用户和组(续篇)

    用户切换 新建用户 useradd命令的选项 设置用户口令 passwd命令的选项 chage命令 修改用户帐户 禁用和恢复用户帐户 禁用和恢复用户帐户- Passwd命令 禁用和恢复用户帐户-直接修 ...

  8. 运维自动化神器ansible之group模块

    ansible之group模块 group模块是用来添加或者删除组 首先使用ansible-doc来查看用法 [root@note0 ansible]# ansible-doc -s group - ...

  9. ansible中文手册-基础模块使用

    此篇文章主要是翻译ansible官网文档而来,在里面讲述了如何使用ansible的基础模块,总体感觉比较晦涩,但是后面会写出自己相关实践的文档,从而更加通俗易懂,官网的东西拿来当手册偶尔翻翻也是很不错 ...

随机推荐

  1. App测试理论简介

    一.App测试常见关注点 1.App的功能测试 功能测试都是我们首要测试的,只有功能实现了才算符合上线发布的最低标准.我们需要检测产品功能是否已实现.产品功能是否符合设计要求.产品功能是否有重复.产品 ...

  2. C#开发PACS医学影像处理系统(六):加载Dicom影像

    对于一款软件的扩展性和维护性来说,上层业务逻辑和UI表现一定要自己开发才有控制权,否则项目上线之后容易被掣肘, 而底层图像处理,我们不需要重复造轮子,这里推荐使用fo-dicom,同样基于Dicom3 ...

  3. linux下设置账户锁定阈值:登录失败n次,多长时间后解锁重新登录

    在centos系统下: 1.执行命令 vim /etc/pam.d/system-auth或vim /etc/pam.d/ login 2.执行命令 vim /etc/pam.d/sshd 3.在上面 ...

  4. Express下ejs的视图模板引擎的建立

    写在前面 由于Express升级到4.0,将ejs的用法忽略,改为用户自定义形式,所以要引入库index.js作为引擎,来支持ejs的模板引擎(点击下载). 首先是建立一个名字叫nodeitem,引擎 ...

  5. Java多线程1:进程与线程

    进程和线程 讲线程和进程前,先讲下同步(Synchronous).异步(Asynchronous).并发(Concurrency).并行(Parallelism). 同步(Synchronous)和异 ...

  6. 福利来了~Linux一键部署包,环境安装不用愁!!!

    前言 昨天一哥们的弟弟突然问我有没有部署过的Linux,公司连个运维都没有,服务器都要后端部署.... 你有没有相似的遭遇呢?公司规模小,后端即是运维,一份工资干两份活,哈哈~ 为了解决这老弟的困惑, ...

  7. LevelDb 101学习

    转自http://www.cnblogs.com/haippy/archive/2011/12/04/2276064.html LevelDb日知录之一:LevelDb 101 说起LevelDb也许 ...

  8. Gradle系列之Android Gradle高级配置

    本篇文章主要在之前学习的基础上,从实际开发的角度学习如何对 Android Gradle 来进行自定义以满足不同的开发需求,下面是 Gradle 系列的几篇文章: Gradle系列之初识Gradle ...

  9. Redis的五大数据类型以及key的相关操作命令

    Redis的五大数据类型 redis的数据都是以key/value存储,所以说,五大类型指的是value的数据类型 String 字符串,作为redis的最基本数据类型 redis中的string类型 ...

  10. 面试官:讲讲Redis的五大数据类型?如何使用?(内含完整测试源码)

    写在前面 最近面试跳槽的小伙伴有点多,给我反馈的面试情况更是千差万别,不过很多小伙伴反馈说:面试中的大部分问题都能够在我的公众号[冰河技术]中找到答案,面试过程还是挺轻松的,最终也是轻松的拿到了Off ...