build cloud os in one day belgium
TRANSCRIPT
www.mscloud.be
http://www.microsoft.com/hosting
https://www.yammer.com/westerneuropehostingcommunity/
1 ConsistentPlatform
Windows Azure Services
Service ProvidersPrivate Cloud
Public Cloud
Microsoft Cloud OS Vision
Azure Virtual Machines
Windows Azure Services
Customer
ServiceProvider
Microsoft
ConsistentPlatform
ONE
Multi-Tenant
Unified Management
Flexible Deployment
Common Identity
Integrated Virtualization
Web Hosting Database Hosting Desktop Hosting Application HostingVM Hosting
The Platform Designed for Hosting Service Providers
10
ComputeStorage
(File/Block)Network
Windows Server 2012 R2
Web Applications Remote Desktop Services
Networking Storage Management Active Directory
Virtualization with Hyper-V Availability / Scalability / Security
System Center 2012 R2
Service Provider Foundation API
OS & Application Monitoring
Automation & Self-Service
Infrastructure Provisioning
Foundation for Hosting Service Provider Offers
ISV Control Panels Custom Control Panels Service Management Portal
Service Management API (REST OData)
Windows Server 2012 R2 Provides the comprehensive, highly scalable platform
System Center 2012 R2
Provides the cost efficient, unified management platform
Windows Azure Pack & Service Provider Foundation APIProvides standard management API
Web Hosting Database Hosting Desktop Hosting Application HostingVM Hosting
The Platform Designed for Hosting Service Providers
11
PDT prerequisites
• Windows Server 2012• Windows Server 2012 R2• System Center 2012• System Center 2012 R2• WebPI, WinZip or 7-Zip
The Tool
• Source• Installer.ps1• Variable.xml• Workflow.xml• Downloader.ps1• VMCreator.ps1• Deploy.ps1• Customer Folders and Scripts
PDT workflow.xmlContains all the logic for installing;
- Windows Server
- System Center
- Windows Azure Pack
Installer.ps1 knows nothing about deploying System CenterAll “knowledge” is in Workflow.xmlWorkflow.xml defines everything we know about deploying System Center
Defines…Roles
Requirements – validation, Windows roles and features, prerequisitesDependencies on other rolesIntegrations between rolesFirewall
InstallablesDownloadsInstalls
Default settings – global, component, SQL
PDT variable.xml<?xml version="1.0" encoding="utf-8"?><!-- 1st cut at minimizing VMs used --><Installer version="2.0"><Variable Name="RegisteredUser" Value="Microsoft Corporation" /><Variable Name="RegisteredOrganization" Value="Microsoft Corporation" /><Variable Name="InstallerServiceAccount" Value="CONTOSO\!Installer" /><Variable Name="InstallerServiceAccountPassword" Value="Passw0rd!" /><Variable Name="SourcePath" Value="$SystemDrive\Temp" /><Variable Name="Download" Value="S:\Installer2.6.2600" /> <Components>
PDT variable.xml<Components>
<Component Name="System Center 2012 R2 Virtual Machine Manager"><Variable Name="SystemCenter2012R2VirtualMachineManagerProgramFiles" Value="D:\Program Files\Microsoft System Center 2012
R2\Virtual Machine Manager" /><Variable Name="SystemCenter2012R2VirtualMachineManagerAdminGroup" Value="CONTOSO\VMM Admins" /><Variable Name="SystemCenter2012R2VirtualMachineManagerBitsTcpPort" Value="444" /><Variable Name="SystemCenter2012R2VirtualMachineManagerServiceAccount" Value="CONTOSO\!vmm" /><Variable Name="SystemCenter2012R2VirtualMachineManagerServiceAccountPassword" Value="Passw0rd!" />
</Component>
TIP;
Use cut and past from default xml to select what you need
Lookout for the XML format <start> </start>
PDT variable.xml<Roles>
<Role Name="System Center 2012 R2 Virtual Machine Manager Database Server" Server="SCDB01.contoso.com" Instance="MSSQLSERVER"></Role>
<Role Name="System Center 2012 R2 Virtual Machine Manager Management Server" Server="VMM01.contoso.com"></Role><Role Name="System Center 2012 R2 Virtual Machine Manager Console" Server="VMM01.contoso.com"></Role>
</Roles>
PDT variable.xml<<SQL>
<Instance Server="SCDB01.contoso.com" Instance="MSSQLSERVER" Version="SQL Server 2012"><Variable Name="SQLAdmins" Value="CONTOSO\SQL Admins" /><Variable Name="SQLInstallSQLDataDir" Value="D:\Program Files\Microsoft SQL Server"/><Variable Name="SQLUserDBDir" Value="D:\MSSQL11.$Instance\MSSQL\Data"/><Variable Name="SQLUserDBLogDir" Value="E:\MSSQL11.$Instance\MSSQL\Data"/><Variable Name="SQLTempDBDir" Value="F:\MSSQL11.$Instance\MSSQL\Data"/><Variable Name="SQLTempDBLogDir" Value="F:\MSSQL11.$Instance\MSSQL\Data"/><Variable Name="SQLAgtServiceAccount" Value="CONTOSO\!sql" /><Variable Name="SQLAgtServiceAccountPassword" Value="Passw0rd!" /><Variable Name="SQLServiceAccount" Value="CONTOSO\!sql" /><Variable Name="SQLServiceAccountPassword" Value="Passw0rd!" />
</Instance></SQL>
PDT variable.xml<VMs>
<Count>3</Count><Domain><Name>contoso.com</Name><ServiceAccountOU>Services.HQ</ServiceAccountOU><GroupOU>Groups.HQ</GroupOU>
</Domain><Default><Host>Localhost</Host><VMFolder>f:\pdtdemo\vms</VMFolder><VHDFolder>f:\pdtdemo\VMs</VHDFolder><VMName><Prefix>WS12R2D</Prefix><Sequence>1</Sequence>
</VMName><Processor>2</Processor><Memory><Startup>1024</Startup><Minimum>512</Minimum><Maximum>2048</Maximum><Buffer>20</Buffer>
</Memory>
….
PDT variable.xml<NetworkAdapter>
<VirtualSwitch>CorpNet01</VirtualSwitch> <MAC><Prefix>00:15:5D:65:01:</Prefix><Sequence>4</Sequence>
</MAC><IP><Prefix>192.168.1.</Prefix><Sequence>4</Sequence><Mask>24</Mask><Gateway>192.168.1.4</Gateway><DNS>192.168.1.4</DNS>
</IP></NetworkAdapter><OSDisk><Parent>f:\pdtdemo\vmbasis\WS12R2D-G2.vhdx</Parent><Type>Differencing</Type>
</OSDisk>
…. Created via Convert-WindowsImage.ps1
PDT variable.xml<DataDisks>
<Count>1</Count><Format>VHDX</Format><Size>100</Size>
</DataDisks><DVD>False</DVD><AutoStart><Action>Nothing</Action><Delay>0</Delay>
</AutoStart><JoinDomain><Domain>contoso.com</Domain><Credentials><Domain>contoso.com</Domain><Password>Passw0rd!</Password><Username>!jd</Username>
</Credentials><OrganizationalUnit>Servers.HQ</OrganizationalUnit>
</JoinDomain><AdministratorPassword>Passw0rd!</AdministratorPassword><VMGeneration>2</VMGeneration><GuestServices>True</GuestServices>
</Default>
End of default settings
PDT variable.xml<VM Count="1">
<VMName>DC01</VMName><DataDisks><Count>2</Count><Format>VHDX</Format><Size>100</Size>
</DataDisks></VM><VM Count="2"><VMGeneration>2</VMGeneration><VMName>SCDB01</VMName><Memory><Startup>1024</Startup><Minimum>512</Minimum><Maximum>8192</Maximum><Buffer>5</Buffer>
</Memory><DataDisks><Count>3</Count><Format>VHDX</Format><Size>100</Size>
</DataDisks></VM>
generation
count
count
PDT variable.xml
Tip;
Check in the variable.xml
• The path to the files• Generation vm• Vm count• Roles
PDT downloader.ps1
Remember!!! Downloader does NOT download:• Windows Server 2012• Windows Server 2012 R2• System Center 2012• System Center 2012 R2• WebPI, WinZip or 7-Zip
Manual download or use your install media an place in the installer dir (as defined in variable.xml)
http://blogs.technet.com/b/privatecloud/archive/2013/10/17/deployment-pdt-update-for-system-center-2012-r2-now-available.aspx
Download all the bits – Downloader.ps1Downloads…System Center Components
Prerequisites e.g. -
SQL Native Client, Report Viewer, WSUS
SQL Server 2012 and SP1
SQL Server 2008 R2 and SP2
SharePoint 2010 Foundation
Windows Server 2012
Management Packs
Integration Packs
Extracts…ISO – Windows Server 2012
RAR – System Center 2012 Components
Zip - SPModule
Runs…ADKSetup.exe download
Configuration Manager setupdl.exe download
Self-extracting exe
Slipstreams…SQL Server 2008 R2 SP2
Requires…Windows Server 2012/Windows 8
WinRAR
Option…Downloader.ps1 -DeploymentOnly
Restartable!
Install each server OS – VMCreator.ps1
OptionalPDT can use existing servers, physical or virtual, any virtualization platform
Requirements - Windows Server, Domain joined, WinRM enabled, administrator permissions
Specify countHow many servers are in your deployment?
Specify defaultsHyper-V host, VM name, processor, memory, network adapter, OS disk, data disks, domain to join
Full example in default Variable.xml in PDT
Specify overrides per VM, if desired e.g. Different Hyper-V hosts, VM name, memory, OS disk
VMCreator.ps1 will validate required resources for VM creationCreates VM, joins domain, enables WinRM, add installer service account to administrators
PDT vmcreator
Runs first on the host in the powershell script.
When scripts are finish then the process still runs on the domain controller.
Look via connect in the Hyper-V host. Wait for scripts to finish before proceding with next steps!!!!!! (IMPORTANT: If the Hyper-V host is not part of the domain, you’ll see some errors. At that point cancel, attached the media with the Installer/Downloader bits and rerun Installer.ps1)
Integrations
PDT completes all automatable component integrationApp Controller Virtual Machine Manager
Service Provider Foundation Virtual Machine Manager
Virtual Machine Manager Operations Manager
Service Manager Service Manager Datawarehouse
Operations Manager Service Manager Datawarehouse
Service Manager Orchestrator
Service Manager Configuration Manager
Service Manager Operations Manager
Service Manager Operations Manager Alerts
Service Manager Virtual Machine Manager
Data Protection Manager Operations Manager
Notable missing integration…Orchestrator Integration Pack Registration, Deployment and Configuration
Component Admin Groups
System Center components use different methodsService Manager requires admin group specified at installation time
Orchestrator optionally allows admin group specified at installation time
Operations Manager, Virtual Machine Manager, App Controller use members of local administrators
Service Provider Foundation, Data Protection Manager use local administrators group
Configuration Manager uses account performing the installation
PDT optionally allows you to specify admin groupsService Manager is only required group to be specified
Configuration Manager admin group requires Configuration Manager console to be installed
PDT configures consoles to connect to correct server
Component Admin Groups – Variable.xml<Components>
<Component Name="System Center 2012 SP1 Virtual Machine Manager">
<Variable Name="SystemCenter2012SP1VirtualMachineManagerAdminGroup" Value="CONTOSO\VMM Admins" />
</Component>
<Component Name="System Center 2012 SP1 Orchestrator">
<Variable Name="SystemCenter2012SP1OrchestratorAdminGroup" Value="CONTOSO\Orchestrator Admins" />
</Component>
<Component Name="System Center 2012 SP1 App Controller">
<Variable Name="SystemCenter2012SP1AppControllerAdminGroup" Value="CONTOSO\AC Admins" />
</Component>
<Component Name="System Center 2012 SP1 Operations Manager">
<Variable Name="SystemCenter2012SP1OperationsManagerAdminGroup" Value="CONTOSO\OM Admins" />
</Component>
<Component Name="System Center 2012 SP1 Service Manager">
<Variable Name="SystemCenter2012SP1ServiceManagerAdminRoleGroup" Value="CONTOSO\SM Admins" />
</Component>
<Component Name="System Center 2012 SP1 Data Protection Manager">
<Variable Name="SystemCenter2012SP1DataProtectionManagerAdminGroup" Value="CONTOSO\DPM Admins" />
</Component>
<Component Name="System Center 2012 SP1 Configuration Manager">
<Variable Name="SystemCenter2012SP1ConfigurationManagerAdminGroup" Value="CONTOSO\CM Admins" />
</Component>
</Components>
Advanced ConfigurationOther components settingsCopy variable from Workflow.xml to Variable.xml
Existing SQLNo validation – installer service account must have permissions
Getting SQL “right”Specify file locations for database files, log files, tempDB
SQL ClustersWindows cluster and storage must be created first
Virtual Machine Manager ClusterWindows cluster must be created firstActive Directory container must be created first, with permission for VMM service account
Scale Out RolesFirst then additional, Concurrent, Sequential
Getting SQL “right” – Variable.xml
<SQL>
<Instance Server "SCDB.contoso.com" Instance "MSSQLSERVER" Version "SQL Server 2012">
<Variable Name "SQLAdmins" Value "CONTOSO\SQL Admins" />
<Variable Name "SQLInstallSQLDataDir" Value "E:\Program Files\Microsoft SQL Server" />
<Variable Name "SQLUserDBDir" Value "E:\Program Files\Microsoft SQL Server\MSSQL10_50.$Instance\MSSQL\Data" />
<Variable Name "SQLUserDBLogDir" Value "F:\Program Files\Microsoft SQL Server\MSSQL10_50.$Instance\MSSQL\Data" />
<Variable Name "SQLTempDBDir" Value "G:\Program Files\Microsoft SQL Server\MSSQL10_50.$Instance\MSSQL\Data" />
<Variable Name "SQLTempDBLogDir" Value "G:\Program Files\Microsoft SQL Server\MSSQL10_50.$Instance\MSSQL\Data" />
<Variable Name "SQLBackupDir" Value "E:\Program Files\Microsoft SQL Server\MSSQL10_50.$Instance\MSSQL\Data" />
</Instance>
</SQL>
SQL cluster using SMB storage – Variable.xml<Roles>
<Role Name="System Center 2012 SP1 Orchestrator Database Server" Server="ORDB.contoso.com" Instance="MSSQLSERVER" SQLCluster="True"></Role>
</Roles>
<SQL>
<Cluster Cluster="ORDB.contoso.com" Version="SQL Server 2012">
<Variable Name="SQLAdmins" Value="CONTOSO\SQL Admins" />
<Variable Name="SQLAgtServiceAccount" Value="CONTOSO\sql" />
<Variable Name="SQLAgtServiceAccountPassword" Value="password" />
<Variable Name="SQLServiceAccount" Value="CONTOSO\sql" />
<Variable Name="SQLServiceAccountPassword" Value="password" />
<Variable Name="SQLInstallSQLDataDir" Value="\\FS01\CLDB1\ORDB" />
<Variable Name="SQLUserDBDir" Value="\\FS01\CLDB1\ORDB\MSSQL11.$Instance\MSSQL\DATA" />
<Variable Name="SQLUserDBLogDir" Value="\\FS01\CLDB2\ORDB\MSSQL11.$Instance\MSSQL\DATA" />
<Variable Name="SQLTempDBDir" Value="\\FS01\CLDB3\ORDB\MSSQL11.$Instance\MSSQL\DATA" />
<Variable Name="SQLTempDBLogDir" Value="\\FS01\CLDB3\ORDB\MSSQL11.$Instance\MSSQL\DATA" />
<Variable Name="SQLClusterIPAddress" Value="192.168.1.226" />
<Variable Name="SQLClusterNetwork" Value="Cluster Network 1" />
<Variable Name="SQLClusterIPSubnet" Value="255.255.255.0" />
<Node Server="CLDB1A.contoso.com" Preferred="1"></Node>
<Node Server="CLDB1C.contoso.com" Preferred="2"></Node>
<Node Server="CLDB1B.contoso.com"></Node>
</Cluster>
</SQL>
SQL cluster using SAN storage – Variable.xml<Roles>
<Role Name="System Center 2012 SP1 Orchestrator Database Server" Server="ORDB.contoso.com" Instance="MSSQLSERVER" SQLCluster="True"></Role>
</Roles>
<SQL>
<Cluster Cluster="ORDB.contoso.com" Version="SQL Server 2012">
<Variable Name="SQLAdmins" Value="CONTOSO\SQL Admins" />
<Variable Name="SQLAgtServiceAccount" Value="CONTOSO\sql" />
<Variable Name="SQLAgtServiceAccountPassword" Value="password" />
<Variable Name="SQLServiceAccount" Value="CONTOSO\sql" />
<Variable Name="SQLServiceAccountPassword" Value="password" />
<Variable Name="SQLInstallSQLDataDir" Value="H:\MSSQL11.$Instance\MSSQL\DATA" />
<Variable Name="SQLUserDBDir" Value="H:\MSSQL11.$Instance\MSSQL\DATA" />
<Variable Name="SQLUserDBLogDir" Value="I:\MSSQL11.$Instance\MSSQL\DATA" />
<Variable Name="SQLTempDBDir" Value="J:\MSSQL11.$Instance\MSSQL\DATA" />
<Variable Name="SQLTempDBLogDir" Value="J:\MSSQL11.$Instance\MSSQL\DATA" />
<Variable Name="SQLClusterIPAddress" Value="192.168.1.226" />
<Variable Name="SQLClusterNetwork" Value="Cluster Network 1" />
<Variable Name="SQLClusterIPSubnet" Value="255.255.255.0" />
<Variable Name="SQLClusterDisks">
<Value>`"Cluster Disk 1`" `"Cluster Disk 2`" `"Cluster Disk 3`"</Value>
</Variable>
<Node Server="CLDB1A.contoso.com" Preferred="1"></Node>
<Node Server="CLDB1C.contoso.com" Preferred="2"></Node>
<Node Server="CLDB1B.contoso.com"></Node>
</Cluster>
</SQL>
Virtual Machine Manager cluster – Variable.xml
<Components>
<Component Name="System Center 2012 SP1 Virtual Machine Manager">
<Variable Name="SystemCenter2012SP1VirtualMachineManagerServiceAccount" Value="CONTOSO\vmm" />
<Variable Name="SystemCenter2012SP1VirtualMachineManagerServiceAccountPassword" Value=“password" />
<Variable Name="SystemCenter2012SP1VirtualMachineManagerVmmServerName" Value="VMM2.contoso.com" />
<Variable Name="SystemCenter2012SP1VirtualMachineManagerTopContainerName" Value="CN=VMMDKM,DC=contoso,DC=com" />
<Variable Name="SystemCenter2012SP1VirtualMachineManagerVMMStaticIPAddress" Value="192.168.1.230"/>
</Component>
</Components>
<Roles>
<Role Name="System Center 2012 SP1 Virtual Machine Manager Database Server" Server="VMMDB.contoso.com" Instance="VMMDB"SQLCluster="True"></Role>
<Role Name="System Center 2012 SP1 Virtual Machine Manager Cluster Active Management Server" Server="CLVMM2A.contoso.com" />
<Role Name="System Center 2012 SP1 Virtual Machine Manager Cluster Passive Management Server" Server="CLVMM2B.contoso.com" />
</Roles>
Scale out roles – Variable.xml<Roles>
. . .
. . .
<Role Name="System Center 2012 SP1 Orchestrator Primary Runbook Server" Server="OR1.contoso.com" ></Role>
<Role Name="System Center 2012 SP1 Orchestrator Standby Runbook Server" Server="OR2.contoso.com" ></Role>
<Role Name="System Center 2012 SP1 Orchestrator Standby Runbook Server" Server="OR3.contoso.com" ></Role>
<Role Name="System Center 2012 SP1 Service Provider Foundation Server" Server=“SPF1.contoso.com" ></Role>
<Role Name="System Center 2012 SP1 Service Provider Foundation Additional Server" Server=“SPF2.contoso.com" ></Role>
<Role Name="System Center 2012 SP1 Service Provider Foundation Additional Server" Server=“SPF3.contoso.com" ></Role>
<Role Name="System Center 2012 SP1 App Controller Server" Server="AC1.contoso.com" ></Role>
<Role Name="System Center 2012 SP1 App Controller Additional Server" Server="AC2.contoso.com" ></Role>
<Role Name="System Center 2012 SP1 App Controller Additional Server" Server="AC3.contoso.com" ></Role>
<Role Name="System Center 2012 SP1 Operations Manager Management Server" Server=“OM1.contoso.com" ></Role>
<Role Name="System Center 2012 SP1 Operations Manager Additional Management Server" Server=“OM2.contoso.com" ></Role>
<Role Name="System Center 2012 SP1 Operations Manager Additional Management Server" Server=“OM3.contoso.com" ></Role>
<Role Name="System Center 2012 SP1 Service Manager Management Server" Server=“SM1.contoso.com" ></Role>
<Role Name="System Center 2012 SP1 Service Manager Datawarehouse Management Server" Server=“SM2.contoso.com" ></Role>
<Role Name="System Center 2012 SP1 Service Manager Additional Management Server " Server=“SM3.contoso.com" ></Role>
<Role Name="System Center 2012 SP1 Service Manager Additional Management Server " Server=“SM4.contoso.com" ></Role>
<Role Name="System Center 2012 SP1 Data Protection Manager Server" Server=“DPM1.contoso.com" ></Role>
<Role Name="System Center 2012 SP1 Data Protection Manager Server" Server=“DPM2.contoso.com" ></Role>
<Role Name="System Center 2012 SP1 Data Protection Manager Server" Server=“DPM3.contoso.com" ></Role>
</Roles>
TroubleshootingInstaller.ps1 loggingLogs to C:\Users\<username>\AppData\Local\Installer
Log file per target server in deployment
Unified log Installer.log
Note: Installer logs contain ALL command lines, with passwords removed
Component setup loggingCopied after deployment to C:\Temp\<GUID>\<ServerName>
Restarting deploymentDeployment can be restarted
Restarts do not redeploy anything that succeeded
Some failures are timeouts – restarts usually fix these
Be careful of reboots!
TroubleshootingInstaller.ps1
Remember host from where you run the installer.ps1 needs to be part off the domain or is trusted by the domain.
Installer.ps1 does active directory checks before running
Error exceptions
Can not reach ….
Evaluation versus LicensedPDT can deploy evaluation or licensedData Protection Manager media from Downloader.ps1 is evaluation only
All components can be switched to licensedSQL Server – run setup.exe, switch edition, enter product key
Orchestrator – enter product key in Runbook Designer
Virtual Machine Manager – enter product key in console
App Controller - PowerShell
Operations Manager – PowerShell
Configuration Manager – run setup.exe and enter product key
Service Manager – tool from product support services only
Data Protection Manager – run setup.exe and enter product key
PowerShell Deployment ToolkitAvailable on the TechNet Gallery
http://aka.ms/DownloadPDT
Documented through the Building Clouds bloghttp://aka.ms/GetToKnowPDT
Don’t forget the YouTube video…http://aka.ms/PDTVideo
Does not replace…Configuration Manager software distribution
Virtual Machine Manager virtual machine creation
Virtual Machine Manager service deployment and servicing
resourceshttp://blogs.technet.com/b/privatecloud/archive/2013/02/08/deployment-introducing-powershell-deployment-toolkit.aspx
http://blogs.technet.com/b/privatecloud/archive/2013/02/09/deployment-the-pdt-downloader.aspx
http://blogs.technet.com/b/privatecloud/archive/2013/02/18/deployment-the-pdt-vm-creator.aspx
http://gallery.technet.microsoft.com/scriptcenter/Convert-WindowsImageps1-0fe23a8f
http://social.technet.microsoft.com/wiki/contents/articles/22048.creating-system-center-vms-using-pdt-for-hybrid-scenario.aspx
https://github.com/ThojoUno/PDT/blob/master/Variable%28FullLabNoCM-DPM%29.xml
http://www.hyper-v.nu/archives/hvredevoort/2014/03/solving-a-failed-windows-azure-pack-installation-by-powershell-deployment-toolkit/
http://www.systemcentercentral.com/build-windows-azure-pack-2013-lab-using-pdt/
http://social.technet.microsoft.com/wiki/contents/articles/20689.windows-azure-pack-wapack-and-related-blogs-videos-and-technet-articles.aspx
http://social.technet.microsoft.com/wiki/contents/articles/21044.lab-deployment-guide-for-windows-azure-pack.aspx
http://www.windowsnetworking.com/articles-tutorials/cloud-computing/deploying-windows-azure-pack-part1.html
http://www.windowsnetworking.com/articles-tutorials/cloud-computing/deploying-windows-azure-pack-part2.html
http://www.windowsnetworking.com/articles-tutorials/cloud-computing/deploying-windows-azure-pack-part3.html?utm_source=WAzurePPipe&utm_medium=twitter
http://gallery.technet.microsoft.com/PowerShell-Deployment-f20bb605#content
http://www.petri.co.il/powershell-deployment-toolkit-variables-xml.htm#
http://blogs.technet.com/b/privatecloud/archive/2013/10/17/deployment-pdt-update-for-system-center-2012-r2-now-available.aspx
Run PowerShell as admin
\>Get-ExecutionPolicy
If not RemoteSigned change it
\>Set-ExecutionPolicy -ExecutionPolicy Unrestricted
Hands-on
http://gallery.technet.microsoft.com/scriptcenter/Convert-WindowsImageps1-0fe23a8f
.\Convert-WindowsImage.ps1 -ShowUi
.\Convert-WindowsImage.ps1 -SourcePathP:\Installer\WindowsServer2012R2\sources\install.wim -VHDPathD:\data\downloads\en-E-WS12R2D.vhdx -VHDFormat VHDX -Edition ServerDataCenterEval -VHDType Dynamic -SizeBytes 64GB
Built vm, vhdx, dynamic 64GB
Hands-on
Do you have…?• downloaded the BC1D.zip• Unpacked it to C:\Installer• Created a Volume V: for the VMs?
Have you…• Enabled Hyper-V?• Create the Virtual Switch (VMSwitch)• Set PowerShell Execution Policy
OPTIONAL!
EDIT VARIABLE.XML AND CUSTOMIZE- Remove SC Components- Change Role Location- Modify Domain Name, etc
Note: if you are going to edit Variable.xml, we suggest using PowerShell ISE or Visual Studio
If YES then let’s go!
• Open a PowerShell with Administrative Rights• Navigate to C:\Installer• .\Deploy.ps1• Keep an eye on the console. Any errors?
Download the Build Cloud OS in ONE Day - Deployment Guide and follow it
Ah! DC01 is Running!
• Open the console• Wait until is done• Any errors? If so you may need to attach the Installer/Downloader
Media and rerun Installer.ps1 (it was automatically launched by vmcreator.ps1)
• If you see “Windows License Expired” on the bottom right of the Desktop:• Open Admin CMD, run: “SLMGR /rearm” and REBOOT• Do it for all created VMs• You can issue slmgr.vbs at target a remote server:
• slmgr.vbs <TargetComputerName> /rearm• Shutdown /m <TargetComputerName> /r /t 0
Deployment ongoing now. This will take a while…
• Open the console• Wait until is done• Any errors? If so you may need to attach
the Installer/Downloader Media and rerun Installar.ps1 (it was automatically launched by vmcreator.ps1)