From 13f8c7fc202f5398d30271637ad8903c727b80ef Mon Sep 17 00:00:00 2001 From: abrown38 Date: Thu, 2 May 2024 14:20:28 +0000 Subject: [PATCH] Added win_user role --- ansible/playbooks/win_user.yml | 9 +++++ ansible/roles/win_user/tasks/check.yml | 44 +++++++++++++++++++++++++ ansible/roles/win_user/tasks/create.yml | 20 +++++++++++ ansible/roles/win_user/tasks/main.yml | 3 ++ ansible/roles/win_user/vars/main.yml | 1 + 5 files changed, 77 insertions(+) create mode 100644 ansible/playbooks/win_user.yml create mode 100644 ansible/roles/win_user/tasks/check.yml create mode 100644 ansible/roles/win_user/tasks/create.yml create mode 100644 ansible/roles/win_user/tasks/main.yml create mode 100644 ansible/roles/win_user/vars/main.yml 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