Ansible内置模块之 user
发布作者:微思网络 发布时间:2024-11-25 浏览量:0次
选项 | 必须 | 类型 | 默认值 | 说明 |
name | 是 | str | 无 | 用户名。 |
state | 否 | str | present | 用户的状态。可以是 present(存在)或 absent(不存在)。 |
comment | 否 | str | 无 | 用户的描述信息(GECOS)。 |
uid | 否 | int | 无 | 用户的 UID。 |
groups | 否 | str | 无 | 用户所属的附加组列表(以逗号分隔)。 |
append | 否 | bool | no | 如果为 yes,将用户添加到附加组,而不移除已有的组。 |
home | 否 | str | 无 | 用户的 home 目录路径。 |
password | 否 | str | 无 | 用户的密码(加密后的)。 |
remove | 否 | bool | False | 仅在 state=absent 时,决定是否删除用户家目录 |
shell | 否 | str | 无 | 用户的登录 shell。 |
system | 否 | bool | no | 如果为 yes,创建一个系统用户。 |
move_home | 否 | bool | no | 如果为 yes,将用户的 home 目录移动到新的位置。 |
create_home | 否 | bool | yes | 如果为 yes,在创建用户时创建 home 目录。 |
# 一个比较完整的自定义用户用例
- name: Create Users
ansible.builtin.user:
name: johnd
comment: "John Doe"
uid: 1040
home: /home/johnd
create_home: yes
groups: devops
append: yes
state: present
shell: /bin/bash
generate_ssh_key: yes
ssh_key_bits: 2048
ssh_key_file: .ssh/id_rsa# 与使用ssh-keygen指令效果相同
password: "{{ redhat | password_hash('sha512') }}"
# 删除一个用户
- name: Remove a user
ansible.builtin.user:
name: johndoe
state: absent
# 创建一个系统用户
- name: Create a system user
ansible.builtin.user:
name: sysuser
system: yes
# 创建一个用户并添加到多个组
- name: Create a user and add to groups
ansible.builtin.user:
name: johndoe
groups: wheel,admin
append: yes
# 修改用户的home 目录
- name: Modify user home directory
ansible.builtin.user:
name: johndoe
home: /newhome/johndoe
move_home: yes
需要说明的是,在指定 password 参数时,不能使用明文密码,因为后面这一串密码会被直接传送到被管理主机的/etc/shadow 文件中,所以需要先将密码字符串进行加密处理。然后将得到的字符串放到 password 中即可。
echo "123456" | openssl passwd -1 -salt $(< /dev/urandom tr -dc '[:alnum:]' | head -c 32) -stdin
$1$4P4PlFuE$ur9ObJiT5iHNrb9QnjaIB0
echo "123456" | openssl passwd -6 -salt $(< /dev/urandom tr -dc '[:alnum:]' | head -c 32) -stdin
$6$Z3pqrtDizkpqYOzp$gYG/h3e1EO1MNQVJ0dda1aBNDq0qQu9vMSdlz2mEE2NgwEHwDYPaKPBDkFM/OOhGcN5SS.c568U0gphPeACW20
# 可使用上面的密码创建用户
不同的发行版默认使用的加密方式可能会有区别,具体可以查看/etc/login.defs 文件确认,RHEL9 使用的是 SHA512 加密算法
其他城市考试时间
扫码咨询客服小姐姐