如何使用 Ansible 将用户添加到其他组?例如,我想将用户添加到组sudo
而不替换用户现有的组集。
答案1
根据用户模块你可以使用这个:
- name: Adding user {{ user }}
user: name={{ user }}
group={{ user }}
shell=/bin/bash
password=${password}
groups=sudo
append=yes
您可以在创建用户时添加groups=groupname
和将其添加到现有用户append=yes
答案2
如果{{ user }}
系统中已经存在,您应该使用以下命令将其添加到组中:
- name: adding existing user '{{ user }}' to group sudo
user:
name: '{{ user }}'
groups: sudo
append: yes
要将其添加到一组组,可以使用逗号分隔的列表,例如groups: admin,sudo
。
请注意,如果你省略append: yes
,你的用户将被从所有其他组中删除,根据usermod 手册页。如果您想使用用户应属于的特定组列表,这将很有用。
答案3
请注意,在最近的 Ansible 版本中{{ user }}
已更改为({{ ansible_user }}
https://github.com/ansible/ansible/blob/c600ab81ee/lib/ansible/playbook/play_context.py#L46-L55)。或者,您也可以使用ansible_ssh_user
- 效果是一样的。因此,来自 admirabilis 的更新代码如下所示:
- name: adding existing user "{{ ansible_user }}" to group sudo
user:
name: "{{ ansible_user }}"
groups: sudo
append: yes
become: yes
更多修复:
- 使用双引号以便变量扩展
- 添加,
become: yes
因为需要管理权限才能更改组文件