Active Directory playbooks (#6)

AD playbooks
This commit is contained in:
MKletz
2022-02-23 12:39:50 -06:00
committed by GitHub
parent 788cf7b675
commit b3af08c4e4
5 changed files with 115 additions and 0 deletions

View File

@@ -39,3 +39,5 @@ Please push contributions via a pull request following the naming convention of
- Extra vars:
demo: <linux or windows>
4. If you require a Windows Active Directory domain you will need to run the "ACTIVE DIRECTORY / Create Active Directory domain" template after the Windows setup completes. This will create the "ansible.local" domain as well as a few generic users and groups.

View File

@@ -10,5 +10,6 @@ collections:
- containers.podman
#windows
- chocolatey.chocolatey
- community.windows
#
- azure.azcollection

View File

@@ -0,0 +1,34 @@
---
- name: Create Active Directory domain
hosts: "{{ HOSTS | default('windows') }}"
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: 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) }}"
loop:
- { name: "UserA", groups: "GroupA" }
- { name: "UserB", groups: "GroupB" }
- { name: "UserC", groups: "GroupC" }

View File

@@ -0,0 +1,38 @@
---
- name: Helpdesk new user portal
hosts: "{{ HOSTS | default('windows') }}"
tasks:
- name: Setting host facts using complex arguments
set_fact:
temp_password: "{{ lookup('community.general.random_string', min_lower=1, min_upper=1, min_special=1, min_numeric=1) }}"
# Example result: ['&Qw2|E[-']
- name: Create new user
community.windows.win_domain_user:
name: "{{ firstname }} {{ surname }}"
firstname: "{{ firstname }}"
surname: "{{ surname }}"
sam_account_name: "{{ firstname[0] }}{{ surname }}"
company: BobCo
password: "{{ temp_password }}"
state: present
groups:
- "GroupA"
- "GroupB"
street: 123 4th St.
city: Sometown
state_province: IN
postal_code: 12345
country: US
attributes:
telephoneNumber: 555-123456
register: new_user
- name: Display User
debug:
var: new_user
- name: Show temp password
debug:
var: temp_password

View File

@@ -163,3 +163,43 @@ controller_templates:
choices:
- 'Running'
- 'Stopped'
- name: "ACTIVE DIRECTORY / Create Active Directory domain"
job_type: run
inventory: "Workshop Inventory"
project: "Ansible official demo project"
playbook: "windows/active_directory/create_ad_domain.yml"
execution_environment: Default execution environment
credentials:
- "Workshop Credential"
survey_enabled: true
survey:
name: ''
description: ''
spec:
- question_name: Server Name or Pattern
type: text
variable: HOSTS
required: false
- name: "ACTIVE DIRECTORY / Helpdesk new user portal"
job_type: run
inventory: "Workshop Inventory"
project: "Ansible official demo project"
playbook: "windows/active_directory/helpdesk_new_user_portal.yml"
execution_environment: Default execution environment
credentials:
- "Workshop Credential"
survey_enabled: true
survey:
name: ''
description: ''
spec:
- question_name: Firstname
type: text
variable: firstname
required: true
- question_name: Surname
type: text
variable: surname
required: true