mirror of
https://git.ecdf.ed.ac.uk/win_automation/windows-ansible.git
synced 2026-10-26 11:17:21 +00:00
118 lines
3.2 KiB
YAML
118 lines
3.2 KiB
YAML
---
|
|
|
|
- name: Check User Action is valid
|
|
ansible.builtin.assert:
|
|
that:
|
|
- user_action is defined
|
|
- user_action is string
|
|
- user_action is in valid_actions
|
|
quiet: true
|
|
|
|
- name: Check User information
|
|
block:
|
|
- name: Check Username
|
|
ansible.builtin.assert:
|
|
that:
|
|
- username is defined
|
|
- username is string
|
|
- username is not none
|
|
- username|length <= 20
|
|
quiet: true
|
|
|
|
- name: Check User Info [CREATE]
|
|
ansible.builtin.assert:
|
|
that:
|
|
- study_code is defined
|
|
# - username checked already
|
|
- password is defined
|
|
- firstname is defined
|
|
- lastname is defined
|
|
- email is defined
|
|
- user_role is defined
|
|
quiet: true
|
|
when: user_action == 'create'
|
|
|
|
- name: Check User Info [RESET]
|
|
ansible.builtin.assert:
|
|
that:
|
|
# - username checked already
|
|
- password is defined
|
|
quiet: true
|
|
when: user_action == 'reset'
|
|
|
|
- name: Check User Info [DISABLE]
|
|
ansible.builtin.assert:
|
|
that:
|
|
# - username checked already
|
|
- study_code is defined # so can be removed from group (WIP)
|
|
- user_role is defined # so can be removed from group (WIP)
|
|
quiet: true
|
|
when: user_action == 'disable'
|
|
|
|
- name: Check User Info [ENABLE]
|
|
ansible.builtin.assert:
|
|
that:
|
|
# - username checked already
|
|
- study_code is defined # so can be removed from group (WIP)
|
|
- user_role is defined # so can be removed from group (WIP)
|
|
quiet: true
|
|
when: user_action == 'disable'
|
|
|
|
- name: Check User Info [MODIFY]
|
|
ansible.builtin.assert:
|
|
that:
|
|
- study_code is defined
|
|
- user_role is defined
|
|
quiet: true
|
|
when: user_action == 'modify'
|
|
|
|
- name: Check Study folder & group
|
|
block:
|
|
- name: Check AD group exists
|
|
microsoft.ad.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
|
|
register: group
|
|
failed_when: group.changed == true
|
|
|
|
- name: Check if Folder Created
|
|
win_stat:
|
|
path: "{{ study_folder }}"
|
|
register: folder
|
|
delegate_to: "{{ os_project }}-{{ win_project }}-fs01"
|
|
failed_when: folder.stat.exists == false
|
|
when: |
|
|
user_action == 'create' or
|
|
user_action == 'modify'
|
|
|
|
- name: Verify User
|
|
block:
|
|
- name: Create user in AD
|
|
microsoft.ad.user:
|
|
name: "{{ username }}"
|
|
path: ou=Project Users,dc={{ win_project }},dc=loc
|
|
state: present
|
|
register: user
|
|
check_mode: true
|
|
|
|
- name: Check user doesn't already exist
|
|
ansible.builtin.assert:
|
|
that:
|
|
- user.changed == true
|
|
msg: "Trying to create a user that already exists."
|
|
quiet: true
|
|
when: user_action == 'create'
|
|
|
|
- name: Check user exist
|
|
ansible.builtin.assert:
|
|
that:
|
|
- user.changed == false
|
|
msg: "Trying to modify a user that doesn't exists."
|
|
quiet: true
|
|
when: user_action != 'create'
|