04-ad.yaml - name: Manage AD objects hosts: windows gather_facts: false vars: ad_state: present domain_dn: "DC=kutyacica,DC=lan" ad_ous: - name: TanfolyamUsers path: "{{ domain_dn }}" - name: TanfolyamGroups path: "{{ domain_dn }}" ad_groups: - name: LinuxAdmins path: "OU=TanfolyamGroups,{{ domain_dn }}" scope: global category: security ad_users: - username: jkovacs firstname: János surname: Kovács - username: nagy.peter firstname: Péter surname: Nagy tasks: - name: Create OUs microsoft.ad.ou: name: "{{ item.name }}" path: "{{ item.path }}" protect_from_deletion: false state: present loop: "{{ ad_ous }}" when: ad_state == "present" - name: Create groups microsoft.ad.group: name: "{{ item.name }}" path: "{{ item.path }}" scope: "{{ item.scope }}" category: "{{ item.category }}" state: present loop: "{{ ad_groups }}" when: ad_state == "present" - name: Create users microsoft.ad.user: name: "{{ item.username }}" firstname: "{{ item.firstname }}" surname: "{{ item.surname }}" display_name: "{{ item.surname }} {{ item.firstname }}" upn: "{{ item.username }}@kutyacica.lan" sam_account_name: "{{ item.username }}" path: "OU=TanfolyamUsers,{{ domain_dn }}" password: "KezdoJelszo123!" enabled: true state: present loop: "{{ ad_users }}" when: ad_state == "present" - name: Add users to group microsoft.ad.group: name: LinuxAdmins path: "OU=TanfolyamGroups,{{ domain_dn }}" members: add: "{{ ad_users | map(attribute='username') | list }}" state: present when: ad_state == "present" - name: Delete users microsoft.ad.user: identity: "{{ item.username }}" state: absent loop: "{{ ad_users }}" when: ad_state == "absent" - name: Delete groups microsoft.ad.group: identity: "{{ item.name }}" state: absent loop: "{{ ad_groups }}" when: ad_state == "absent" - name: Delete OUs microsoft.ad.ou: name: "{{ item.name }}" path: "{{ item.path }}" state: absent loop: "{{ ad_ous | reverse | list }}" when: ad_state == "absent"