ansible常用模块之 -- user模块 -- 管理用户账户

ansible常用模块之 -- user模块 -- 管理用户账户

user模块 – 管理用户账户

一、摘要

  • 管理用户帐号和用户属性。
  • 对于Windows目标,使用win_user模块代替。

二、参数

参数选项/默认值描述
append
boolean
· no ←
· yes
如果为 yes,将用户添加到 groups 选项指定的组中。
如果为 no,则只将用户添加到 groups 选项中指定的组中,并将其从所有其他组中删除。
与 local 选项相互排斥。
authorization
string
设置用户的授权。
与其他平台一起使用时不执行任何操作。
可以使用逗号分隔设置多个授权。
要删除所有授权,请使用authorization=‘’。
目前仅在Illumos/Solaris上支持。
comment
string
可选设置用户帐户的描述(又名GECOS)。
create_home
boolean
· yes ←
· no
除非设置为no,否则将在创建帐户时或者该账户主目录不存在时,为用户创建一个主目录。
expires
boolean
用户在epoch中的过期时间,在不支持该功能的平台上被忽略。
目前支持GNU/Linux、FreeBSD和DragonFlyBSD。
从Ansible 2.6开始,可以通过指定负值来删除过期时间。目前在GNU/Linux和FreeBSD上支持。
force
boolean
· no ←
· yes
该参数只影响state=absent,它强制删除受支持平台上的用户和相关目录。
其行为与 userdel --force 相同。
当与 generate_ssh_key=yes 一起使用时,这将强制覆盖现有的密钥。
generate_ssh_key
boolean
· no ←
· yes
是否为该用户生成SSH密钥。
不会覆盖现有的SSH密钥,除非使用 force=yes。
group
string
可选地设置用户的主组(接受组名)。
groups
list
用户将被添加到的组列表。当设置为空字符串"时,用户将从除主组外的所有组中删除。
与 local 选项相互排斥
hidden
boolean
· no
· yes
仅适用于macOS,可选地从登录窗口和系统首选项隐藏用户。
如果使用 system 选项,则默认为 yes。
home
path
可选地设置用户的主目录。
local
boolean
· no ←
· yes
强制在实现它的平台上使用“本地”命令替代方案。
当您想要操作本地用户时,这在使用集中身份验证的环境中非常有用(例如,它使用 luseradd 而不是 useradd)。
这将在调用命令之前检查/etc/passwd是否为现有帐户。如果本地帐户数据库存在于/etc/passwd之外的其他地方,则此设置将无法正常工作。
这要求上述命令以及/etc/passwd必须存在于目标主机上,否则将会出现错误。
与 groups 选项、 append 选项互斥
login_class
string
可选地设置用户的登录类,这是大多数BSD操作系统的特性。
move_home
boolean
· no ←
· yes
如果与 home 选项一起使用时设置为yes,则尝试将用户的旧主目录移动到指定的目录,如果该目录不存在且旧主目录存在。
name
string
required
要创建、删除或修改的用户名。
non_unique
boolean
· no ←
· yes
当与 -u 选项一起使用时,该选项允许将用户ID更改为非惟一值。
password
string
可选地将用户密码设置为这个加密值。
在macOS系统上,这个值必须是明文的。注意安全问题。
要在Linux系统上创建一个禁用的帐户,请将其设置为 “!” 或 “"。
要在OpenBSD上创建一个禁用的帐户,请将其设置为 "
************”。
password_lock
boolean
· no
· yes
锁定密码(usermod -L, usermod -U, pw lock)。
实现因平台而异。此选项并不总是意味着用户不能使用其他方法登录。
此选项不禁用用户,只锁定密码。
为解锁当前锁定的密码,值必须设置为False。不使用此参数将无法解锁密码。
目前支持Linux, FreeBSD, DragonFlyBSD, NetBSD, OpenBSD。
profile
string
设置用户的配置文件。
与其他平台一起使用时不执行任何操作。
可以使用逗号分隔设置多个概要文件。
要删除所有的配置文件,使用 profile=‘’。
目前在Illumos/Solaris上支持。
remove
boolean
· no ←
· yes
只影响 state=absent,它试图删除与用户关联的目录。
行为与 userdel --remove 相同。
role
string
设置用户的角色。
与其他平台一起使用时不执行任何操作。
可以使用逗号分隔设置多个角色。
如果要删除所有角色,请使用role=‘’。
目前在Illumos/Solaris上支持。
seuser
string
可选地在启用selinux的系统上设置seuser类型(user_u)。
shell
string
可选地设置用户的shell。
在Ansible 2.5之前的macOS上,非系统用户的默认shell是/usr/bin/false。从Ansible 2.5开始,macOS上非系统用户的默认shell是/bin/bash
在其他操作系统上,默认shell由所使用的底层工具决定。
skeleton
string
可选地设置主框架目录。
需要 create_home 选项!
ssh_key_bits
integer
Default:“default set by ssh-keygen”可选地指定要创建的SSH密钥的位数。
ssh_key_comment
string
Default:“ansible-generated on $HOSTNAME”可选地为SSH密钥定义注释。
ssh_key_file
path
可选地指定SSH密钥文件名。
如果这是一个相对文件名,那么它将相对于用户的主目录。
该参数默认为 .ssh/id_rsa。
ssh_key_passphrase
string
设置SSH密钥的密码。
如果没有提供密码短语,SSH密钥将默认为没有密码短语。
ssh_key_type
string
Default:‘rsa’可选地指定要生成的SSH密钥类型。
可用的SSH密钥类型取决于目标主机上的实现。
state
string
· present ←
· absent
无论该帐户是否存在,如果状态与所陈述的不一致,则采取行动。
system
boolean
· no ←
· yes
在创建帐户 state=present 时,将此选项设置为 yes 将使用户成为系统帐户。
uid
integer
可选地设置用户的UID。
update_password
string
· always ←
· on_create
always:如果密码不同,总是更新密码
on_create:只为新创建的用户设置密码

三、示例

######  添加用户'johnd',具有特定的uid和主组'admin'
- name: Add the user 'johnd' with a specific uid and a primary group of 'admin'
  user:
    name: johnd
    comment: John Doe
    uid: 1040
    group: admin

###### 使用bash shell添加用户'james',将组'admins'和'developers'附加到用户组中
- name: Add the user 'james' with a bash shell, appending the group 'admins' and 'developers' to the user's groups
  user:
    name: james
    shell: /bin/bash
    groups: admins,developers
    append: yes

###### 删除用户 'johnd'
- name: Remove the user 'johnd'
  user:
    name: johnd
    state: absent
    remove: yes

###### 在~jsmith/.ssh/id_rsa目录下为用户jsmith创建2048位SSH密钥
- name: Create a 2048-bit SSH key for user jsmith in ~jsmith/.ssh/id_rsa
  user:
    name: jsmith
    generate_ssh_key: yes
    ssh_key_bits: 2048
    ssh_key_file: .ssh/id_rsa

###### 增加帐户过期时间
- name: Added a consultant whose account you want to expire
  user:
    name: james18
    shell: /bin/zsh
    groups: developers
    expires: 1422403387

###### 从Ansible 2.6开始,修改用户,删除过期时间
- name: Starting at Ansible 2.6, modify user, remove expiry time
  user:
    name: james18
    expires: -1

官方文档:https://docs.ansible.com/ansible/2.9/modules/user_module.html#user-module

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值