有没有办法使用ansible将活动目录中的用户分配给多个组?
Posted
技术标签:
【中文标题】有没有办法使用ansible将活动目录中的用户分配给多个组?【英文标题】:Is there a way to assign a user in the active directory to multiple groups with ansible? 【发布时间】:2021-05-09 13:25:56 【问题描述】:我创建了一个 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
使用以下命令运行 playbook:
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 中的多个组中?谢谢。
(已编辑)
根据提供的答案,我设法使用“循环”将用户分成多个组。
【问题讨论】:
【参考方案1】:我认为如果您在变量或列表中定义组并遍历您希望添加用户的列表,我认为您可以做到这一点,请检查此链接它可以帮助您管理这样做,因为您的剧本正在工作,只需要一个定义明确的循环
https://docs.ansible.com/ansible/latest/user_guide/playbooks_loops.html[loops 在 ansible]1
【讨论】:
以上是关于有没有办法使用ansible将活动目录中的用户分配给多个组?的主要内容,如果未能解决你的问题,请参考以下文章
如何以正确的方式将变量分配给 Ansible 中的另一个变量?
如何将本地角色与从ansible-galaxy加载的角色分开?