功能:系统用户管理
官方文档:https://docs.ansible.com/ansible/latest/modules/user_module.html#user-module
常用参数:
参数 | 选项/默认值 | 说明 |
---|---|---|
password | 输入密码信息(password设置密码时不能使用明文方式,只能使用密文方式,可以给用户设置密码 还可以给用户修改密码) | |
name | 指定用户名 | |
system | yes/no | 创建一个用户并设置这个用户为系统用户,这个设置不能更改现在的用户 |
uid | 指定用户 uid 信息 | |
group | 指定用户所属组 | |
groups | 指定用户所属附加组 | |
shell | /bin/bash或/sbin/nologin | 指定用户是否可以登陆 |
create_home | yes/no | 是否创建家目录 |
move_home | yes/no | 假如此用户已经存在,yes为覆盖家目录,no为创建为此用户创建另外一个家目录,两个家目录通过uid区分 |
home | 指定家目录创建在什么路径 默认/home | |
state | 指定用户状态 | |
state= | present | present 为创建 |
state= | absent | absent 为删除 |
remove | yes/no | remove=yes 则表示在删除(state=absent)用户时同时删除用户家目录,remove=no 则表示不删除 |
generate_ssh_key=yes | 创建用户的同时是否为此用户创建ssh密钥文件 |
password 密码加密方式:
# 安装 python 工具
[root@master ~]# yum -y install python-pip
[root@master ~]# pip install --upgrade pip
[root@master ~]# pip install passlib
[root@master ~]# python -c "from passlib.hash import sha512_crypt; import getpass; print(sha512_crypt.using(rounds=5000).hash(getpass.getpass()))"
Password:
$6$i36wkjavj/M/K/2T$EUFdeExIDsZgCzWH3ckYNKoau0BFr3FZ.8g9tjq/A8unFThrpS1iBJ0Ou3ikjl0KgozKA12GDGqdLH06bCIPR/
注意:这里的 $ 符在使用时需要使用 \$ 转义
示例:
[root@master ~]# ansible dong -m user -a "name=123 password=\$6\$i36wkjavj/M/K/2T\$EUFdeExIDsZgCzWH3ckYNKoau0BFr3FZ.8g9tjq/A8unFThrpS1iBJ0Ou3ikjl0KgozKA12GDGqdLH06bCIPR/ create_home=yes home=/data shell=/sbin/nologin"
[root@master ~]# ansible dong -m user -a "name=123 state=absent remove=yes"