Convert Exchange to a Terraform module
This commit is contained in:
		
							
								
								
									
										126
									
								
								ESXi/ansible/roles/exchange/tasks/main.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										126
									
								
								ESXi/ansible/roles/exchange/tasks/main.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,126 @@ | ||||
| --- | ||||
|  | ||||
| - 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 \"$_\"}" | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 Chris Long
					Chris Long