diff --git a/ansible/playbooks/win_user.yml b/ansible/playbooks/win_user.yml new file mode 100644 index 0000000..c49cb5e --- /dev/null +++ b/ansible/playbooks/win_user.yml @@ -0,0 +1,9 @@ +--- +- hosts: "meta-name_dc01" + gather_facts: false + vars_files: + - ../vars/common.yml + - ../vars/connection.yml + roles: + - role: win_user + tags: win_user diff --git a/ansible/roles/win_user/tasks/check.yml b/ansible/roles/win_user/tasks/check.yml new file mode 100644 index 0000000..ae6da98 --- /dev/null +++ b/ansible/roles/win_user/tasks/check.yml @@ -0,0 +1,44 @@ +--- +- name: Check user + tags: check_user + block: + - name: Verify study group exists + win_domain_group: + name: "{{ study_code }}" + description: "{{ study_code }} study" + path: "ou=Project Groups,dc={{ win_project }},dc=loc" + scope: domainlocal + category: security + state: present + check_mode: true + changed_when: false + register: group + + - name: Check if study folder already exists + win_stat: + path: "{{ study_folder }}" + register: folder + delegate_to: "{{ os_project }}-{{ win_project }}-fs01" + + - name: Verify User does not already exist + win_domain_user: + name: "{{ username }}" + state: query + register: user + + - name: Duplicate User Detected + fail: + msg="This study has not been created yet" + when: group.created == true or + folder.stat.exists == false + + - name: Duplicate User Detected + fail: + msg="This User already exists" + when: user.state == "present" + + + + + + diff --git a/ansible/roles/win_user/tasks/create.yml b/ansible/roles/win_user/tasks/create.yml new file mode 100644 index 0000000..6ae7f91 --- /dev/null +++ b/ansible/roles/win_user/tasks/create.yml @@ -0,0 +1,20 @@ +--- +- name: Create AD user + tags: create_user + block: + - name: Create user in AD + win_domain_user: + name: "{{ username }}" + firstname: "{{ firstname }}" + surname: "{{ lastname }}" + description: "{{ user_role }} - {{ study_code }}" + path: ou=Project Users,dc={{ win_project }},dc=loc + groups: + - "{{ study_code }}" + - Remote Desktop Users + email: "{{ email }}" + attributes: + HomeDirectory: "{{ study_folder }}" + password: "{{ password }}" + password_expired: false + state: present \ No newline at end of file diff --git a/ansible/roles/win_user/tasks/main.yml b/ansible/roles/win_user/tasks/main.yml new file mode 100644 index 0000000..f391fd0 --- /dev/null +++ b/ansible/roles/win_user/tasks/main.yml @@ -0,0 +1,3 @@ +--- +- import_tasks: check.yml +- import_tasks: create.yml diff --git a/ansible/roles/win_user/vars/main.yml b/ansible/roles/win_user/vars/main.yml new file mode 100644 index 0000000..837571f --- /dev/null +++ b/ansible/roles/win_user/vars/main.yml @@ -0,0 +1 @@ +study_folder: \\{{ win_project }}.loc\Study_Data\{{ study_code }} \ No newline at end of file