socketwench.users-and-groups
Ansible 角色:用户和组
为 Debian/Ubuntu Linux 创建用户和组。
需求
无。
角色变量
可用的变量列在下面,以及默认值(请参见 defaults/main.yml
)。
要创建一个使用所有默认设置且主要组与其用户名相同的用户:
server_users:
- name: "ash"
password: "imnotarobot"
组
没有单独的组变量。它们是 server_users
变量的一部分。
要指定主要组名称和备用组:
server_users:
- name: "ash"
password: "imnotarobot"
group: "primarygroupname"
groups:
- "anothergroup"
- "more-groups-here"
SSH 密钥
默认情况下,由此角色创建的所有用户都会生成新的 SSH 密钥:
server_users_ssh_key_generate: yes
server_users_ssh_key_bits: "4096"
您也可以为每个用户覆盖此设置:
server_users:
- name: "ash"
password: "imnotarobot"
ssh_key_generate: yes
ssh_key_bits: "4096"
SSH 授权密钥
有时您希望设置授权密钥,以便人们可以使用公钥而不是密码登录。要为所有用户设置:
server_users_auth_keys: "{{ contents_of_ssh_authorized_keys }}"
这个变量的内容与 ~/.ssh/authorized_keys
文件相同。
您也可以为每个用户覆盖此设置:
server_users:
- name: "ash"
password: "imnotarobot"
auth_keys: "{{ contents_of_ssh_authorized_keys }}"
默认 shell
默认 shell 是 bash。您可以为所有用户覆盖此设置:
server_users_shell: "/bin/bash"
您还可以为特定用户指定一个 shell。这样会覆盖上述默认设置:
server_users:
- name: "ash"
password: "imnotarobot"
shell: "/bin/zsh"
默认情况下,出于安全原因,此角色不会记录任务操作。要启用日志记录:
server_users_no_log: true
Ansible 配置
此角色还会将 .ansible.cfg
文件分发到每个用户的主目录。这允许您覆盖默认的 role_path 和 no_cows 设置:
server_users_ansible_role_path: "~/.ansible/roles"
server_users_ansible_nocows: 1
server_users_ansible_log: false
server_users_ansible_log_path: '~/ansible.log'
同样,您可以为每个用户设置:
server_users:
- name: "ash"
password: "imnotarobot"
ansible_role_path: "/etc/ansible/roles"
ansible_nocows: 0
ansible_log: true
ansible_log_path: "/home/ash/logs/ansible.log"
删除用户
您还可以使用 state
变量删除用户:
server_users:
- name: "ash"
state: absent
如果您还希望删除他们的主目录,请使用 remove
:
server_users:
- name: "ash"
state: absent
remove: yes
依赖关系
无。
示例剧本
server_users:
- name: "ash"
password: "imnotarobot"
group: "wy"
groups:
- "scidiv"
- name: "kane"
password: "ihateeggs"
shell: "/bin/ksh"
ssh_key_generate: no
许可证
GPL 3.0。
作者信息
此角色由 socketwench 于 2017 年创建。