diff --git a/ansible/playbooks/win_study.yml b/ansible/playbooks/win_study.yml new file mode 100644 index 0000000..a6fdede --- /dev/null +++ b/ansible/playbooks/win_study.yml @@ -0,0 +1,9 @@ +--- +- hosts: "meta-name_fs01" + gather_facts: false + vars_files: + - ../vars/common.yml + - ../vars/connection.yml + roles: + - role: win_study + tags: win_study diff --git a/ansible/roles/win_study/tasks/check.yml b/ansible/roles/win_study/tasks/check.yml new file mode 100644 index 0000000..58d10e9 --- /dev/null +++ b/ansible/roles/win_study/tasks/check.yml @@ -0,0 +1,16 @@ +--- +- name: Check status of project + tags: check_project + block: + - name: Check if study folder already exists + win_stat: + path: "{{ study_folder }}" + register: folder + failed_when: folder.stat.exists + + rescue: + - name: Force fail when study folder already present + fail: + msg="This study folder is already present" + + diff --git a/ansible/roles/win_study/tasks/create.yml b/ansible/roles/win_study/tasks/create.yml new file mode 100644 index 0000000..10ed519 --- /dev/null +++ b/ansible/roles/win_study/tasks/create.yml @@ -0,0 +1,24 @@ +--- +- name: Create Study + tags: create_study + block: + - name: Create study folders and import/export folders + win_file: + path: "{{ study_folder }}\\{{ item }}" + state: directory + with_items: ["import", "export"] + + - name: Create study folders on T drive + ansible.windows.win_file: + path: "T:\\{{ item }}\\{{ study_code }}" + state: directory + with_items: ["Import", "Export"] + + - name: Create AD group + community.windows.win_domain_group: + name: "{{ study_code }}" + description: "{{ study_code }} study" + path: "ou=Project Groups,dc={{ win_project }},dc=loc" + scope: domainlocal + category: security + delegate_to: "{{ os_project }}-{{ win_project }}-dc01" diff --git a/ansible/roles/win_study/tasks/main.yml b/ansible/roles/win_study/tasks/main.yml new file mode 100644 index 0000000..1f0a12c --- /dev/null +++ b/ansible/roles/win_study/tasks/main.yml @@ -0,0 +1,4 @@ +--- +- import_tasks: check.yml +- import_tasks: create.yml +- import_tasks: permissions.yml \ No newline at end of file diff --git a/ansible/roles/win_study/tasks/permissions.yml b/ansible/roles/win_study/tasks/permissions.yml new file mode 100644 index 0000000..9fed43e --- /dev/null +++ b/ansible/roles/win_study/tasks/permissions.yml @@ -0,0 +1,58 @@ +--- +- name: Set permissions + tags: set_permissions + block: + - name: Add study group permissions to study folder + win_acl: + path: "{{ item }}" + state: present + type: allow + user: "{{ study_code }}" + rights: Read,Write,Modify,Delete + loop: ["{{ study_folder }}", "{{ study_folder }}\\export"] + + - name: Add Domain Admin permissions to study folder + win_acl: + path: "{{ item }}" + state: present + type: allow + user: "{{ domain_admin_username }}" + rights: "FullControll" + loop: ["{{ study_folder }}", "{{ study_folder }}\\export"] + + - name: Add file-transfer user permissions to study folder + win_acl: + path: '{{ study_folder }}\export' + state: present + type: allow + user: file-transfer + rights: 'FullControl' + + - name: Remove Users permissions + block: + - name: "Remove Users permissions from {{ study_folder }}" + win_acl: + path: "{{ study_folder }}" + state: "{{ item }}" + type: allow + user: "Users" + rights: "FullControl" + loop: ["present", "absent"] + + - name: "Remove Users permissions from {{ study_folder }}\\export" + win_acl: + path: "{{ study_folder }}\\export" + state: "{{ item }}" + type: allow + user: "Users" + rights: "FullControl" + loop: ["present", "absent"] + + - name: "Remove Users permissions from {{ study_folder }}\\import" + win_acl: + path: "{{ study_folder }}\\import" + state: "{{ item }}" + type: allow + user: "Users" + rights: "FullControl" + loop: ["present", "absent"] \ No newline at end of file diff --git a/ansible/roles/win_study/vars/main.yml b/ansible/roles/win_study/vars/main.yml new file mode 100644 index 0000000..c1c0b13 --- /dev/null +++ b/ansible/roles/win_study/vars/main.yml @@ -0,0 +1 @@ +study_folder: \\{{ win_project }}.loc\Study_Data\{{ study_code }} \ No newline at end of file