使用 ansible 将用户添加到其他组

使用 ansible 将用户添加到其他组

如何使用 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因为需要管理权限才能更改组文件

相关内容