有没有办法使用 ansible 将活动目录中的用户分配给多个组?

问题描述

我创建了一个 ansible-playbook,旨在通过 Ansible 将用户添加到 Active Directory 中的组,代码如下所示:

# addmembertogroup.yaml
# Skip task when 'group' or 'username' is undefined
# Show message when 'group' or 'username' doesn't exist
---
- hosts: brc.testlab.com
  gather_facts: no
  tasks:
    - name: "Add Member to Group"
      block:
        - name: "Add Member to Group"
          community.windows.win_domain_group_membership:
            name: "{{group}}"
            members: "{{username}}"
            state: present
          when: (group is defined) and (username is defined)
  
      rescue:
        - name: Print when error
          debug:
            msg: Username / Group not exist 

使用以下命令运行剧本的位置:

Ansible-playbook –i hosts addmembertogroup.yaml –e group=DNSAdmins –e username=Cahbayu

基于现有的 ansible playbook 和命令,我设法将一个名为 Cahbayu用户添加DNSAdmins 组中。但是,我希望用户一个命令中位于多个组中。例如,我想将用户 Cahbayu 添加到组 DNSAdmins,Backup Operators,Remote Desktop Users。我已将组参数放入如下列表中,但结果仍然失败:

---
- hosts: brc.testlab.com
  gather_facts: no
  tasks:
    - name: "Add Member to Group"
      block:
        - name: "Add Member to Group"
          community.windows.win_domain_group_membership:
            name: 
              -  "{{group}}"
            members: "{{username}}"
            state: present
              when: (group is defined) and (username is defined)
  
          rescue:
            - name: Print when error
              debug:
                msg: Username / Group not exist 

结果如下: [无法将用户添加到多个组][1]

因此,我的问题是,有没有办法使用 Ansible 将用户输入到 Active Directory 中的多个组中?谢谢。


(已编辑)

根据提供的答案,我设法使用“循环”将用户分成多个组。

解决方法

我认为如果您在变量或列表中定义组并循环浏览您希望将用户添加到的列表,我认为您可以设法做到这一点,请检查此链接它可以帮助您管理这样做,因为您剧本正在工作,只需要一个明确定义的循环

https://docs.ansible.com/ansible/latest/user_guide/playbooks_loops.html[loops 在 ansible]1

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...