--- - name: Create Active Directory domain hosts: "{{ HOSTS | default('windows') }}" gather_facts: false tasks: - name: Create new domain in a new forest on the target host ansible.windows.win_domain: dns_domain_name: ansible.local safe_mode_password: "{{ lookup('community.general.random_string', min_lower=1, min_upper=1, min_special=1, min_numeric=1) }}" register: new_forest - name: Reboot the target host ansible.windows.win_reboot: reboot_timeout: 3600 when: new_forest.reboot_required - name: Wait up to 10min for AD web services to start community.windows.win_wait_for_process: process_name_exact: Microsoft.ActiveDirectory.WebServices pre_wait_delay: 60 state: present timeout: 600 sleep: 10 - name: Create some groups community.windows.win_domain_group: name: "{{ item.name }}" scope: global loop: - { name: "GroupA" } - { name: "GroupB" } - { name: "GroupC" } - name: Create some users community.windows.win_domain_user: name: "{{ item.name }}" groups: "{{ item.groups }}" password: "{{ lookup('community.general.random_string', min_lower=1, min_upper=1, min_special=1, min_numeric=1) }}" update_password: on_create loop: - { name: "UserA", groups: "GroupA" } - { name: "UserB", groups: "GroupB" } - { name: "UserC", groups: "GroupC" }