ansible 常用模块 user

模块说明

  • 管理用户帐户和用户属性。

  • 此模块用于useradd创建、usermod修改和userdel删除帐户。

参数

Parameter

Comments

append

 

boolean

如果true,将用户添加到 中指定的组groups

如果false,用户将只被添加到在指定的组中groups,将他们从所有其他组中删除。

选择:

  • false ← (default)

  • true

authorization

 

string

added in Ansible 2.8

设置用户的权限。

与其他平台一起使用时不执行任何操作。

可以使用逗号分隔设置多个授权。

要删除所有授权,请使用authorization=''

目前支持 Illumos/Solaris。

comment

 

string

可选地设置用户帐户的描述(又名GECOS)。

create_home

 

aliases: createhome

boolean

除非设置为false,否则在创建帐户时或主目录不存在时将为用户创建一个主目录。

createhome在 Ansible 2.5中从 更改为create_home

选择:

  • false

  • true ← (default)

expires

 

float

added in Ansible 1.9

epoch 中用户的到期时间,在不支持此功能的平台上将被忽略。

目前支持 GNU/Linux、FreeBSD 和 DragonFlyBSD。

从 Ansible 2.6 开始,您可以通过指定负值来删除到期时间。目前支持 GNU/Linux 和 FreeBSD。

force

 

boolean

这只会影响state=absent,它会强制删除受支持平台上的用户和关联目录。

行为与 相同,请查看您系统上的手册页以获取详细信息和支持。userdel --forceuserdel

与此一起使用时generate_ssh_key=yes会强制覆盖现有密钥。

选择:

  • false ← (default)

  • true

generate_ssh_key

 

boolean

added in Ansible 0.9

是否为相关用户生成 SSH 密钥。

这不会覆盖现有的 SSH 密钥,除非与force=yes.

选择:

  • false ← (default)

  • true

group

 

string

可选地设置用户的主要组(采用组名)。

groups

 

list / elements=string

用户将被添加到的组列表。

默认情况下,该用户会从所有其他组中删除。配置append修改这个。

当设置为空字符串时'',用户将从除主要组之外的所有组中删除。

在 Ansible 2.3 之前,唯一允许的输入格式是逗号分隔的字符串。

hidden

 

boolean

added in Ansible 2.6

仅限 macOS,可选择在登录窗口和系统首选项中隐藏用户。

true如果使用系统选项,则默认为。

选择:

  • false

  • true

home

 

path

(可选)设置用户的主目录。

local

 

boolean

added in Ansible 2.4

强制在实现它的平台上使用“本地”命令选项。

当您想要操纵本地用户时,这在使用集中身份验证的环境中很有用(换句话说,它使用而luseradd不是useradd)。

这将/etc/passwd在调用命令之前检查现有帐户。如果本地帐户数据库存在于 以外的其他位置/etc/passwd,则此设置将无法正常工作。

这就要求上面的命令以及/etc/passwd必须存在于目标主机上,否则会报致命错误。

选择:

  • false ← (default)

  • true

login_class

string

可选地设置用户的登录类别,这是大多数 BSD 操作系统的一个特性。

move_home

boolean

I如果设置为true与 一起使用时home: ,尝试将用户的旧主目录移动到指定目录(如果它不存在并且旧主目录存在)。

选择:

  • false ← (default)

  • true

name

aliases: user

string / required

要创建、删除或修改的用户的名称。

non_unique

boolean

added in Ansible 1.1

可选地,当与 -u 选项一起使用时,此选项允许将用户 ID 更改为非唯一值。

选择:

  • false ← (default)

  • true

password

 

string

如果提供,请将用户密码设置为提供的加密哈希 (Linux) 或纯文本密码 (macOS)。

Linux/Unix/POSIX:输入散列密码作为值。

有关生成密码哈希的各种方法的详细信息,请参阅常见问题解答条目。

要在 Linux 系统上使用锁定/禁用密码创建帐户,请将其设置为'!''*'

要在 OpenBSD 上创建一个带有锁定/禁用密码的帐户,请将其设置为'*************'.

OS X/macOS:输入明文密码作为值。请务必采取相关的安全预防措施。

password_expire_max

 

integer

added in ansible-core 2.11

密码更改之间的最大天数。

仅在 Linux 上受支持。

password_expire_min

 

integer

added in ansible-core 2.11

密码更改之间的最小天数。

仅在 Linux 上受支持。

password_lock

 

boolean

added in Ansible 2.6

锁定密码 ( usermod -Lusermod -Upw lock)。

实现因平台而异。此选项并不总是意味着用户无法使用其他方法登录。

该选项不禁用用户,只锁定密码。

这必须设置False为才能解锁当前锁定的密码。缺少此参数将不会解锁密码。

目前支持 Linux、FreeBSD、DragonFlyBSD、NetBSD、OpenBSD。

选择:

  • false

  • true

profile

 

string

added in Ansible 2.8

设置用户的配置文件。

与其他平台一起使用时不执行任何操作。

可以使用逗号分隔设置多个配置文件。

要删除所有配置文件,请使用profile=''

目前支持 Illumos/Solaris。

remove

 

boolean

这只会影响state=absent,它会尝试删除与用户关联的目录。

行为与 相同,请查看手册页了解详细信息和支持。userdel --remove

选择:

  • false ← (default)

  • true

role

 

string

added in Ansible 2.8

设置用户的角色。

与其他平台一起使用时不执行任何操作。

可以使用逗号分隔设置多个角色。

要删除所有角色,请使用role=''

目前支持 Illumos/Solaris。

seuser

string

added in Ansible 2.1

可选择在启用 selinux 的系统上设置 seuser 类型 (user_u)。

shell

string

 

可选择设置用户的 shell。

在 macOS 上,在 Ansible 2.5 之前,非系统用户的默认 shell 是/usr/bin/false. 从 Ansible 2.5 开始,macOS 上非系统用户的默认 shell 是/bin/bash.

skeleton

string

added in Ansible 2.0

可选地设置主骨架目录。

需要create_home选项!

ssh_key_bits

integer

added in Ansible 0.9

可选择指定要创建的 SSH 密钥的位数。

默认值取决于 ssh-keygen。

ssh_key_comment

string

added in Ansible 0.9

(可选)为 SSH 密钥定义注释。

默认: "ansible-generated on $HOSTNAME"

 

ssh_key_file

 

path

added in Ansible 0.9

(可选)指定 SSH 密钥文件名。

如果这是相对文件名,那么它将相对于用户的主目录。

此参数默认为.ssh/id_rsa

ssh_key_passphrase

string

added in Ansible 0.9

为 SSH 密钥设置密码。

如果未提供密码,则 SSH 密钥将默认为没有密码。

ssh_key_type

string

added in Ansible 0.9

(可选)指定要生成的 SSH 密钥的类型。

可用的 SSH 密钥类型将取决于目标主机上的实现。

默认: "rsa"

 

state

 

string

该帐户是否应该存在,如果状态与声明的不同,则采取行动。

选择:

  • "absent"

  • "present" ← (default)

system

 

boolean

创建帐户时state=present,将此设置为true使用户成为系统帐户。

现有用户无法更改此设置。

选择:

  • false ← (default)

  • true

uid

integer

可选地设置用户的UID 。

umask

 

string

added in ansible-core 2.12

设置用户的 umask。

与其他平台一起使用时不执行任何操作。

目前支持 Linux。

Requireslocal被省略或为 False。

update_password

 

string

added in Ansible 1.3

always如果密码不同,将更新密码。

on_create只会为新创建的用户设置密码。

选择:

  • "always" ← (default)

  • "on_create"

示例

- name: Add the user 'johnd' with a specific uid and a primary group of 'admin'
  ansible.builtin.user:
    name: johnd
    comment: John Doe
    uid: 1040
    group: admin

- name: Add the user 'james' with a bash shell, appending the group 'admins' and 'developers' to the user's groups
  ansible.builtin.user:
    name: james
    shell: /bin/bash
    groups: admins,developers
    append: yes

- name: Remove the user 'johnd'
  ansible.builtin.user:
    name: johnd
    state: absent
    remove: yes

- name: Create a 2048-bit SSH key for user jsmith in ~jsmith/.ssh/id_rsa
  ansible.builtin.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
  ansible.builtin.user:
    name: james18
    shell: /bin/zsh
    groups: developers
    expires: 1422403387

- name: Starting at Ansible 2.6, modify user, remove expiry time
  ansible.builtin.user:
    name: james18
    expires: -1

- name: Set maximum expiration date for password
  ansible.builtin.user:
    name: ram19
    password_expire_max: 10

- name: Set minimum expiration date for password
  ansible.builtin.user:
    name: pushkar15
    password_expire_min: 5
    
- name: Change shell to /sbin/nologin for specified users
  ansible.builtin.user:
    name: user1
    shell: /sbin/nologin

参考文档

https://docs.ansible.com/ansible/latest/collections/ansible/builtin/user_module.html#ansible-collections-ansible-builtin-user-module

posted @ 2023-03-31 13:00  小吉猫  阅读(196)  评论(0编辑  收藏  举报