ansible用user/group模块管理受控机上的用户和组(ansible2.9.5)
一,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)的更多相关文章
- ansible使用file模块管理受控机的目录与文件(ansible2.9.5)
一,ansible的file模块的用途 file 模块实现对文件的基本操作. 例如: 创建文件或目录 删除文件或目录 修改文件权限等 说明:刘宏缔的架构森林是一个专注架构的博客,地址:https:// ...
- 管理Linux服务器的用户和组
管理Linux服务器的用户和组 Linux操作系统是一个多用户多任务的操作系统,允许多个用户同时登录到系统,使用系统资源. 为了使所有用户的工作顺利进行,保护每个用户的文件和进程,规范每个用户的权限, ...
- 2017.2.20 activiti实战--第五章--用户与组及部署管理(一)用户与组
学习资料:<Activiti实战> 第五章 用户与组及部署管理(一)用户与组 内容概览:讲解activiti中内置的一套用户.组的关系,以及如何通过API添加.删除.查询. 5.1 用户与 ...
- ansible使用script模块在受控机上执行脚本(ansible2.9.5)
一,ansible的script模块的用途 script 模块用来在远程主机上执行 ansible 管理主机上的脚本, 即:脚本一直存在于 ansible 管理主机本地, 不需要手动拷贝到远程主机后再 ...
- ansible使用shell模块在受控机上执行命令(ansible2.9.5)
一,ansible的shell模块和command模块的区别? shell模块:在远程主机上执行主控端发出的shell/python脚本 command模块:不能调用shell指令,没有bash的环境 ...
- ansible通过yum/dnf模块给受控机安装软件(ansible2.9.5)
一,使用yum/dnf模块要注意的地方: 使用dnf软件安装/卸载时,需要有root权限, 所以要使用become参数 说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnb ...
- 管理Linux服务器的用户和组(续篇)
用户切换 新建用户 useradd命令的选项 设置用户口令 passwd命令的选项 chage命令 修改用户帐户 禁用和恢复用户帐户 禁用和恢复用户帐户- Passwd命令 禁用和恢复用户帐户-直接修 ...
- 运维自动化神器ansible之group模块
ansible之group模块 group模块是用来添加或者删除组 首先使用ansible-doc来查看用法 [root@note0 ansible]# ansible-doc -s group - ...
- ansible中文手册-基础模块使用
此篇文章主要是翻译ansible官网文档而来,在里面讲述了如何使用ansible的基础模块,总体感觉比较晦涩,但是后面会写出自己相关实践的文档,从而更加通俗易懂,官网的东西拿来当手册偶尔翻翻也是很不错 ...
随机推荐
- 吴恩达《深度学习》-第五门课 序列模型(Sequence Models)-第一周 循环序列模型(Recurrent Neural Networks) -课程笔记
第一周 循环序列模型(Recurrent Neural Networks) 1.1 为什么选择序列模型?(Why Sequence Models?) 1.2 数学符号(Notation) 这个输入数据 ...
- [剑指Offer]61-扑克牌中的顺子
题目 "红心A,黑桃3,小王,大王,方片5",大\小 王可以看成任何数字,并且A看作1,J为11,Q为12,K为13.上面的5张牌就可以变成"1,2,3,4,5" ...
- ASP.NET Core 配置与获取
目录 1,来自字典 2,来自配置文件 3,层次结构 4,映射 ASP.NET Core 中,可以使用 ConfigurationBuilder 对象来构建. 主要分为三部:配置数据源 -> Co ...
- 用ajax获取后端数据,显示在前端,实现了基本计算器功能
下午在看视频的时候,遇到一个问题:如何把后端 print_r或echo的数据显示在前端.百度了一下,说是用ajax,想着前一阵子学习了ajax,并且最近也想做一个计算器,于是就自己钻起来了. 计算器的 ...
- 基于Prometheus网关的监控完整实现参考
prometheus 是一个非常好的监控组件,尤其是其与grafana配合之后,更是如虎添翼.而prometheus的监控有两种实现方式.1. server端主动拉取应用监控数据:2. 主动推送监控数 ...
- Ubuntu中卸载node和npm并重装
1.node 和 npm 卸载不干净 #apt-get 卸载 sudo apt-get remove --purge npm sudo apt-get remove --purge nodejs su ...
- sql 注入初探
Sql注入:就是将恶意的sql语句插入到用户输入的参数当中并带入数据库中查询并在浏览器返回不该显示的信息 寻找sql注入点: 1.要有参数值的传递(url当中GET型的.注册用户名的页面.登录框.留言 ...
- burp suite 之 Decoder(解码) Comparer(比较器) Extender(扩展)
Decoder模块 将原始数据转换成各种编码和哈希表的简单工具,它能够智能地识别多种编码格式 Decoder as..解码 Encode as...编码 Hash : 哈希值计算 Smart deco ...
- 项目启动加载配置,以及IP黑名单,使用CommandLineRunner和ApplicationRunner来实现(一般用在网关进行拦截黑名单)
//使用2个类的run方法都可以在项目启动时加载配置,唯一不同的是他们的参数不一样,CommandLineRunner的run方法参数是基本类型,ApplicationRunner的run方法参数是一 ...
- Web开发初探之JavaScript 快速入门
本文改编和学习自 A JavaScript Primer For Meteor 和 MDN Web教程 前文 Web开发初探 概述 本文以介绍 JavaScript 为主,初学者掌握本文的内容后,将能 ...