--- - name: Hostname -> EXCHANGE win_hostname: name: EXCHANGE register: res - name: Reboot win_reboot: when: res.reboot_required - name: Set HostOnly IP Address win_shell: "If (-not(get-netipaddress | where {$_.IPAddress -eq '192.168.38.106'})) {$adapter = (get-netadapter | where {$_.MacAddress -eq '00-50-56-A1-B4-C5'}).Name; New-NetIPAddress –InterfaceAlias $adapter –AddressFamily IPv4 -IPAddress 192.168.38.106 –PrefixLength 24 -DefaultGateway 192.168.38.1 } Else { Write-Host 'IP Address Already Created.' }" - name: Set HostOnly DNS Address win_shell: "$adapter = (get-netadapter | where {$_.MacAddress -eq '00-50-56-A1-B4-C5'}).Name; Set-DnsClientServerAddress -InterfaceAlias $adapter -ServerAddresses 192.168.38.102,8.8.8.8" - name: Install git win_chocolatey: name: git state: present - name: Check if existing DetectionLab directory win_stat: path: 'c:\DetectionLab' register: dir - name: Git clone Detectionlab win_shell: git clone https://github.com/clong/DetectionLab.git args: chdir: 'c:\' when: not dir.stat.exists - name: Copy scripts to c:\vagrant win_shell: Copy-Item -Recurse c:\DetectionLab\Vagrant c:\vagrant - name: Join the Domain win_shell: .\\provision.ps1 args: chdir: 'c:\vagrant\scripts' register: exchange_join_domain changed_when: "'HasSucceeded : True' in exchange_join_domain.stdout" - debug: msg="{{ exchange_join_domain.stdout_lines }}" - name: Reboot After Joining the Domain win_reboot: msg: "Joining the domain. Rebooting..." pre_reboot_delay: 5 reboot_timeout: 600 post_reboot_delay: 60 - name: Install Exchange Prereqs win_shell: .\\install-exchange.ps1 args: chdir: 'c:\vagrant\scripts' register: exchange_prereqs changed_when: "'A reboot is required to continue installation of exchange.' in exchange_prereqs.stdout" - name: Reboot After Installing Exchange PreReqs win_reboot: msg: "Exchange Prereqs installed. Rebooting..." pre_reboot_delay: 5 reboot_timeout: 600 post_reboot_delay: 60 - name: Download Exchange ISO and Mount It win_shell: .\\install-exchange.ps1 args: chdir: 'c:\vagrant\scripts' register: download_exchange_iso - name: Prepare Schema win_package: path: E:\Setup.exe arguments: >- /IAcceptExchangeServerLicenseTerms /PrepareSchema product_id: '{CD981244-E9B8-405A-9026-6AEB9DCEF1F1}' vars: ansible_become: yes ansible_become_method: runas ansible_become_user: WINDOMAIN.local\Administrator ansible_become_password: vagrant register: prepare_schema - name: Prepare AD win_package: path: E:\Setup.exe arguments: >- /IAcceptExchangeServerLicenseTerms /PrepareAD /OrganizationName: DetectionLab product_id: '{CD981244-E9B8-405A-9026-6AEB9DCEF1F1}' vars: ansible_become: yes ansible_become_method: runas ansible_become_user: WINDOMAIN.local\Administrator ansible_become_password: vagrant register: prepare_ad - name: Install Exchange win_package: path: E:\Setup.exe arguments: >- /IAcceptExchangeServerLicenseTerms /Mode:Install /Role:Mailbox product_id: '{CD981244-E9B8-405A-9026-6AEB9DCEF1F1}' vars: ansible_become: yes ansible_become_method: runas ansible_become_user: WINDOMAIN.local\Administrator ansible_become_password: vagrant register: install_exchange - name: Reboot after Exchange Installation win_reboot: msg: "Exchange installed. Rebooting..." pre_reboot_delay: 5 reboot_timeout: 600 post_reboot_delay: 60 - name: Clear Event Logs win_shell: "wevtutil el | Select-String -notmatch \"Microsoft-Windows-LiveId\" | Foreach-Object {wevtutil cl \"$_\"}"