AsavarTzeth.users
Ansible 用户角色 - ansible-role-users
Ansible 角色用于管理用户、组、SSH 授权密钥和sudo。
此角色的配置格式深受 cloud-init/cloud config 的启发。目标是在可能的情况下使用相同或相似的 YAML 结构,但在必要时进行扩展。
一些值得注意的小区别:
- 任何连字符(-)都需替换为下划线(_),这是因为 Ansible 对变量名的解释方式。
有关 cloud-init 的更多信息,请查看 cloud-init 文档:
https://cloudinit.readthedocs.io/en/latest/index.html
要求
此角色在 Ansible 2.2.0 及更高版本上开发和测试。可能在较低版本上工作,但当前不受支持。
角色变量
变量列表及默认值:
# 用户创建时使用的默认用户 shell。
users_default_shell: /bin/bash
# 如果主组不存在,角色是否应创建一个。
# 为了防止角色失败,默认设置为 true。
# 如果在其他地方管理组,请禁用此选项。
users_create_primary_group: true
# 启用使用 sudo 的权限提升管理。
# 如果不使用 sudo 或在其他地方管理,请禁用此选项。
users_enable_sudo: true
# 唯一的必填参数是名称。
users:
- name: '' # 用户名。
gecos: '' # 评论字段,也用于用户的真实姓名。
homedir: '' # 用户的主目录。
primary_group: '' # 主用户组。
groups: [] # 用户的补充组列表。
no_create_home: false # 如果为 true,则不创建主目录。如果 `system: true`,则默认为 true。
shell: "{{ users_default_shell }}" # 默认用户 shell。
passwd: '' # 一个经 SHA512 哈希和加盐的密码。
ssh_authorized_keys: [] # 要添加到 authorized_keys 文件中的 SSH 公钥列表。
sudo: '' # 将用于配置 sudo 的 sudo 字符串。
system: false # 如果为 true,用户将是系统用户。不会影响现有用户。
依赖
无
示例剧本
添加或修改用户并设置 sudo 和 SSH 授权密钥:
- hosts: all
roles:
- role: AsavarTzeth.users
users_default_shell: /bin/bash
users_create_primary_group: true
users_enable_sudo: true
users:
- name: foobar1
gecos: Foo B. Bar
primary_group: foobar1
groups: ['users','wheel']
shell: /bin/bash
ssh_authorized_keys:
- "ssh-rsa AAAAA.... foo@host"
- "ssh-rsa AAAAB.... bar@host"
sudo: ALL=(ALL) ALL
添加或修改系统用户:
- hosts: all
roles:
- role: AsavarTzeth.users
users:
- name: foobar2
gecos: FooBar 服务账户
homedir: /
primary_group: foobar
shell: /sbin/nologin
system: true
删除用户:
- hosts: all
roles:
- role: AsavarTzeth.users
users_deleted:
- name: foobar1
- name: foobar2
修改用户密码:
- hosts: all
roles:
- role: AsavarTzeth.users
users:
- name: foobar1
passwd: $6$mI3A2y4O.YfqhlPt$szsWfnICXsYLbsIghLauJG.I3enLYGDPBYO1DYTHn9gB6y3Q2faM7iqievJlU5ZMTT9X3wHrUv0c7HWkToGBp/
许可证
BSD-2-Clause
作者信息
Patrik Nilsson