Beruflich Dokumente
Kultur Dokumente
Published
Dec 2013
Version 3.0
Authors
Jeff Baker, Michael Withrow, Robert Larson, Joel Yoker, Rob Willis, Yuri Diogenes
Copyright information
This document is provided "as-is". Information and views expressed in this document, including URL and other
Internet website references, may change without notice.
Some examples depicted herein are provided for illustration only and are fictitious. No real association or connection
is intended or should be inferred.
This document does not provide you with any legal rights to any intellectual property in any Microsoft product. You
may copy and use this document for your internal, reference purposes.
Microsoft, Active Directory, Hyper-V, Silverlight, Windows PowerShell, Windows, and Windows Server are either
registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries. All other
trademarks are property of their respective owners.
The private cloud model provides much of the efficiency and agility of cloud computing, with the
increased control and customization that are achieved through dedicated private resources. By
implementing private cloud configurations that align to the IaaS PLA, Microsoft and its hardware partners
can help provide organizations the control and the flexibility that are required to reap the potential
benefits of the private cloud.
The IaaS PLA utilizes the core capabilities of the Windows Server® operating system, Hyper-V®, Windows
Azure and System Center to deliver a private cloud infrastructure as a service offering. These are also key
software components that are used for every reference implementation.
1.1 Scope
The scope of this document is to provide customers with the necessary guidance to deploy a Microsoft
private cloud infrastructure in accordance with the IaaS PLA patterns that are identified for use with
Windows Server 2012 R2, Windows Azure and System Center 2012 R2. This document provides specific
guidance for deploying a management architecture for an overall private cloud solution.
The following guides provide information for developing a cloud management capability using System
Center 2012 R2 based on the designs within the IaaS PLA.
The validated designs in the Private Cloud Fast Track are delivering a “best-of-breed solution” from our
hardware partners that drive Microsoft technologies, investments, and best practices. The Private Cloud
Fast Track has expanded the footprint, and it enables a broader choice with different architectures.
Validated designs from our hardware partners are included with Microsoft solutions in the Private Cloud
Fast Track. Please visit the Private Cloud Fast Track website for the most up-to-date information and to
access the validated solutions.
Open solutions
SMB solutions
From 6 to 64 hosts
From 2 to 4 hosts
Up to 8,000 server
Up to 75 server virtual machines
virtual machines
Each audience should use a reference architecture that defines the requirements that are necessary to
design, build, and deliver virtualization and private cloud solutions for small and medium
implementations. Figure 2 shows an example of these reference architectures.
From 2 to 4 From 6 to 64
compute cluster compute
nodes cluster nodes
Dedicated or Dedicated 2-
integrated fabric node fabric-
management management
cluster
Volume1 Volume1
Volume-n Volume-n
Volumes Volumes
1. Software-defined infrastructure
2. Non-converged infrastructure
3. Converged infrastructure
Each design pattern in the IaaS PLA Fabric architecture guide outlines the high-level architecture, provides
an overview of the scenario, identifies technical requirements, outlines all dependencies, and provides
guidelines as to how the architectural guidance applies to each deployment pattern. Each pattern also
includes an array of Fabric constructs in the categories of compute, network, storage, and virtualization,
which comprise the pattern.
1 Variation A: SMB Direct using Shared Serial Attached SCSI (SAS) and Storage Spaces
2 Variation B: SMB Direct using Storage Area Network (SAN)
3 Variation C: SMB3-enabled storage
Teamed network
interfaces (LBFO) Teamed network
interfaces (LBFO)
Hyper-V cluster
Hyper-V cluster
RDMA
Volume1
Volume1
Volume-n
\\cno\share-1
Volume-n
Cluster Shared Volumes (CSV2)
\\cno\share-n
Cluster Shared Volumes (CSV2)
SMB Direct shares
(SMB3 over RDMA)
iSCSI
FC
FC
Clustered
file servers Volumes
Volumes
Storage
Spaces
SAS
SAS
The packaging and licensing of System Center 2012 R2 editions have been updated to simplify purchasing
and to reduce management requirements. System Center 2012 R2 editions are differentiated only by the
number of managed operating system environments. Two managed operating system environments are
provided per the Standard edition license and an unlimited number of operating system environments are
provided for the Datacenter edition. Running instances can exist in a physical operating system
environment or a virtual operating system environment.
Pattern 1 leverages the Windows Azure Pack Minimal Distributed Deployment pattern and is provided
below. It provides the optional capability to scale out various components of the Fabric Management
infrastructure.
Guest Clustering
System Center System Center
Virtual Machine Manager Virtual Machine Manager
4 CPU, 8 GB RAM minimum
4 CPU, 8 GB RAM minimum
Native Application HA
System Center Operations Manager System Center Operations Manager
Management Server Management Server
8 CPU, 16 GB RAM minimum
8 CPU, 16 GB RAM minimum
Load Balanced
Windows Azure Pack (Minimal Distributed) Windows Azure Pack (Minimal Distributed)
External Tier Server Supplemental External Tier
4 CPU, 8 GB RAM minimum 4 CPU, 8 GB RAM minimum
Windows Azure Pack (Minimal Distributed) Windows Azure Pack (Minimal Distributed)
Internal Tier Server Supplemental Internal Tier
8 CPU, 16 GB RAM minimum
8 CPU, 16 GB RAM minimum
System Center
Service Provider Foundation
2 CPU, 4 GB RAM minimum
Host Clustering
System Center System Center
Service Management Automation Service Reporting
2 CPU, 4 GB RAM minimum 4 CPU, 16 GB RAM minimum
System Center
System Center App Controller Operations Manager Reporting Server
4 CPU, 8 GB RAM minimum 4 CPU, 16 GB RAM minimum
Pattern 2 leverages the Windows Azure Pack Scale Distributed Deployment pattern and is provided below.
It focuses on scaling out various components of the Fabric Management infrastructure to provide load
balancing and scale.
Guest Clustering
System Center System Center
Virtual Machine Manager Virtual Machine Manager
4 CPU, 8 GB RAM minimum
4 CPU, 8 GB RAM minimum
Microsoft SQL Server Microsoft SQL Server Microsoft SQL Server Microsoft SQL Server
Failover Cluster Node 1 Failover Cluster Node 2 Failover Cluster Node 3 Failover Cluster Node 4
16 CPU, 16 GB RAM minimum 16 CPU, 16 GB RAM minimum 16 CPU, 16 GB RAM minimum
16 CPU, 16 GB RAM minimum
Native Application HA
System Center Operations Manager
System Center Operations Manager
Management Server
Management Server 8 CPU, 16 GB RAM minimum
8 CPU, 16 GB RAM minimum
Load Balanced
Windows Azure Pack (Scale Distributed) System Center System Center
Windows Azure Pack (Scale
Supplemental Tenant Site Service Provider Foundation Service Provider Foundation
Distributed) Tenant Site 2 CPU, 4 GB RAM minimum
2 CPU, 4 GB RAM minimum 2 CPU, 4 GB RAM minimum 2 CPU, 4 GB RAM minimum
Windows Azure Pack (Scale Windows Azure Pack (Scale Distributed) System Center System Center
Distributed) Tenant Auth Site Supplemental Tenant Auth Site Service Management Automation Service Management Automation
2 CPU, 4 GB RAM minimum 2 CPU, 4 GB RAM minimum 2 CPU, 4 GB RAM minimum
2 CPU, 4 GB RAM minimum
Host Clustering
System Center System Center Service Manager
Windows Deployment Services, Data Warehouse System Center
Windows Server Update Services Service Reporting
2 CPU, 4 GB RAM minimum 8 CPU, 16 GB RAM minimum Operations Manager Reporting
2 CPU, 4 GB RAM minimum 4 CPU, 16 GB RAM minimum
System Center Service Manager
Management Server System Center Service Manager
4 CPU, 16 GB RAM minimum Portal
8 CPU, 16 GB RAM minimum
In addition to the VMs and components listed in the table above it is expected that a domain controller,
WSUS/WDS server and Scale-out File server or other SMB 3 storage target will be available for the
solution to leverage. Though the reference deployment leverages SMB 3, any supported shared storage
solution may be leveraged for the hosts and virtual machines. For additional guidance on these topics you
may reference the following links:
To complete a manual build of the reference deployment VMs perform the following steps on
the first fabric management host computer in the Fabric Management Cluster.
The following Microsoft Active Directory® Domain Services (AD DS) user accounts are required for the
IaaS PLA System Center 2012 R2 installation:
Service Manager Service Manager FT-SCSM-WF Used for all workflows and is a member of the
workflow Service Manager workflows user role.
account
Service Manager Service Manager FT-SCSM-SSRS Used by SQL Server Reporting Services (SSRS)
reporting to access the DWDataMart database to get
account data for reporting. The account becomes a
member of the db_datareader and the
reportuser database roles for the
DWDataMart database.
Service Manager Microsoft SQL FT-SCSM-OLAP Used by SQL Server Analysis Services (SSAS)
Server 2008 for Service Manager reports.
Analysis Services
account for
OLAP cubes
Service Manager Operations FT-SCSM-OMAlert Used for Service Manager Operations
Manager alert Manager alert connector operations.
connector
Service Manager Operations FT-SCSM-OMCI Used for Service Manager Operations
Manager CI Manager continuous integration (CI)
connector connector operations.
Service Manager Active Directory FT-SCSM-ADCI Used for Service Manager AD DS connector
connector operations.
Service Manager Virtual Machine FT-SCSM-VMMCI Used for Service Manager Virtual Machine
Manager CI manager connector operations.
connector
Service Manager Orchestrator CI FT-SCSM-OCI Used for System Center Orchestrator
connector connector operations.
Orchestrator Orchestrator FT-SCO-SVC Used to run the Orchestrator management
services account service, the Orchestrator runbook service, and
the Orchestrator runbook server monitor
service.
App Controller App Controller FT-SCAC-SVC Used to run all App Controller services.
services account
Service Provider Service Provider FT-SPF-SVC Used to run all SPF services.
Foundation (SPF) Foundation
service account
Windows Azure Windows Azure FT-WAP-SVC Used to run all WAP services.
Pack (WAP) Pack service
account
Table 2 Components and suggested user accounts
Establish the
Guest Cluster
5.1 Overview
There is a decision in the SQL Server architecture that must occur prior to deployment. There are multiple
valid SQL Server deployment scenarios, as follows.
Architecture
o Physical servers
o Virtual machines
Storage
o Shared VHDX
o iSCSI
o Fibre Channel
From these choices described, the standard IaaS PLA architecture recommends a minimum two-node
virtualized SQL Server guest cluster that is scaled accordingly for your deployment. The subsequent
sections of this document contain guidance for deploying a two-node cluster.
A high-level walkthrough on how to install SQL Server 2012 SP1 is provided below. The following
assumptions are made prior to installation:
5.2 Prerequisites
The following environment prerequisites must be met before proceeding with installation.
5.2.1 Accounts
Verify that the following accounts have been created:
5.2.2 Groups
Verify that the following security groups have been created:
Notes
The SQL Server guest cluster can also use Fibre Channel storage for clustering the virtual Fibre
Channel adapter, or iSCSI LUNs for Hyper-V in Windows Server 2012 R2.
Although SMB shares can be used for SQL Server failover clusters, SQL Server Analysis Services is
a requirement for the IaaS PLA design, and it is not compatible with SMB shares.
During the provisioning process, two to four virtual machines were built to the specifications outlined in
the Infrastructure-as-a-Service Fabric Management Architecture Guide to support SQL Server operations
for fabric management. After they are created, the Shared VHDXs must be configured within each virtual
machine to make them accessible by each candidate cluster node.
Perform the following steps on all fabric management SQL Server virtual machines.
Click Next.
Click Next.
Perform the following steps on the first fabric management SQL Server virtual machine.
Perform these operations on a single node prior to creating the failover cluster.
Organizations should configure the interfaces according to their specific deployment characteristics. If
separate physical networks are used for VHDXs and inter-cluster private communications (also known as
heartbeat), you should reconnect the virtual network adapters appropriately.
When these steps are complete, each disk should be brought online one at a time, initialized, and
formatted on the first candidate cluster node. Specifying meaningful volume labels while formatting the
disks can help in the future if one or more of the disks lose their assignment to the cluster or virtual
machines and they need be identified.
Important: The installation of a SQL Server cluster creates computer accounts in AD DS, called cluster
name objects, for each instance in the cluster. By default, these objects are created in the default
Computers container of the target Active Directory domain. The account that is used to perform the
installation of the SQL Server cluster requires rights in AD DS to create the associated cluster name
objects for each SQL Server instance. This occurs as a standard part of the SQL Server installation process.
There are several approaches to mitigate this process, including using a higher privileged account for
installation, delegating rights in AD DS for the account that is used for installation, or pre-creating the
computer accounts in the target Active Directory domain. Further discussion of this aspect of Windows
Server Failover Cluster installation (and mitigation strategies) can be found in Failover Cluster Step-by-
Step Guide: Configuring Accounts in Active Directory.
Perform the following steps on the first fabric management SQL Server node virtual machine with an
account that has local Administrator rights and permissions in AD DS to create the SQL Server CNOs.
5.4 Installation
Prior to installing the SQL Server cluster, the information gathered in previous steps must be compiled to
provide a point of reference for the steps required during setup. The following table provides an example.
Note: At this point during the installation, the first node of the SQL Server cluster must have ownership of
the LUNs.
Perform the following steps on the first fabric management SQL Server node virtual machine with an
account that has both local Administrator rights and permissions in AD DS to create the SQL Server
CNOs.
5.4.1 Install the SQL Server Named Instances on the Guest Cluster (Additional Nodes)
After the creation of all required SQL Server instances on Node 1 is complete, additional nodes (Node 2 is
required and additional nodes are optional) can be added to each instance of the cluster. Follow these
steps to begin the installation of additional nodes of the cluster.
Perform the following steps on each additional fabric management SQL Server node virtual
machine.
\Setup.exe /Action=Install
/UpdateSource=[PATH]
5.5.1 Configure Windows Firewall Settings for SQL Server Named Instances
To support the multi-instance cluster, you must configure each SQL Server instance to use a specific
TCP/IP port for the database engine or analysis services. The default instance of the database engine uses
port 1433, and named instances use dynamic ports. To configure the firewall rules to allow access to each
named instance, static listening ports must be assigned.
Use the following procedure to configure the TCP/IP port. For more information, see Configure a Server to
Listen on a Specific TCP Port (SQL Server Configuration Manager) 2.
1
You cannot open the SQL Server Analysis Services properties dialog box in Windows 8.1 - http://support.microsoft.com/kb/2889492
2
Additional information for configuring the Windows Firewall to support SQL Server can be found at
http://technet.microsoft.com/library/cc646023.aspx and http://technet.microsoft.com/library/ms174937.aspx.
8. Repeat these steps to set a static port SQL Instance Listening Port
for each database service instance. SCDB 10433
Reference the SQL Server settings table SCOMDB 10434
at the beginning of this section for the SCOMDW 10435
default values that are used in this
SCSMDB 10436
guide.
SCSMDW 10437
9. When all of the database instances are
SCVMMDB 10438
configured, close SQL Server
Configuration Manager and continue WAPDB 10439
to the next steps to change the SSAS SCSMAS 10440
instance listening port.
38. Alternatively, firewall rules can be New-NetFirewallRule -DisplayName "SQL Server Browser
created through Windows PowerShell Service for Database Engine" -LocalPort 1434 -Protocol
on the local server as shown in this UDP -Action Allow
example. Be sure to replace the port
number value with the correct value for
your environment.
5.5.2 Assign Preferred Owners for SQL Server Instances in Failover Cluster Manager
To support the proper distribution of SQL Server instances across the multi-instance SQL Server cluster,
you must configure failover clustering in Windows to assign preferred owners for each SQL Server
instance. The following steps are provided to assist with this configuration. Note that this change is only
applicable to SQL Server installations which use three or more nodes. The following section is provided as
an example and all installed SQL named instances would need to have similar configuration changes as
outlined. Refer to the planning table to determine appropriate node placement for each named instance.
If the SQL Server installation contains only two nodes, this section is not applicable.
Installation of
System Center 2012 R2
Perform System Center
Virtual Machine
Prerequisites 2012 R2 Virtual
Manager Installation
Machine Manager
Install the
Windows Install the Virtual
Assessment and Configure Shared
Machine Manager
Deployment Kit Storage
Failover Cluster
(ADK)
Configure iSCSI
Connections and
MPIO
Two base virtual machines running Windows Server 2012 R2 have been provisioned and
configured as a Windows Failover Cluster, which includes:
o The selected operating system installation type must be Full Installation.
o At least two shared storage LUNs or one shared storage LUN and a file share witness disk.
o A dedicated virtual network adapter for cluster communication.
o At least one dedicated virtual network adapter for iSCSI communications (if using iSCSI).
The target virtual machines must have the Windows Assessment and Deployment Kit (ADK) for
Windows 8 and Windows Server 2012 R2 installed.
The target virtual machine must have the Windows Server Update Services (WSUS) 4.0 console
installed (available in Windows Server 2012 R2).
o Virtual Machine Manager can use a WSUS root server or a downstream WSUS server.
Virtual Machine Manager does not support using a WSUS replica server. The WSUS server
can be dedicated to Virtual Machine Manager or it can be a WSUS server that is already in
use.
A Microsoft SQL Server instance dedicated to Virtual Machine Manager as outlined in previous
steps must be available.
o The Virtual Machine Manager SQL Server instance must be case-insensitive (this is the
default in SQL Server 2012).
o The SQL Server name must not exceed 15 characters.
o The account used to install Virtual Machine Manager must have the rights needed to
connect to the remote SQL Server instance and create databases.
The installation account must have rights to create the distributed key management container in
AD DS, or this container must already exist prior to running the Virtual Machine Manager setup.
6.2 Prerequisites
The following environment prerequisites must be met before proceeding.
6.2.1 Accounts
Verify that the following service accounts have been created:
6.2.2 Groups
Verify that the following security groups are created:
For more information, see Creating User Roles in VMM on Microsoft TechNet.
During installation, only the Deployment Tools and the Windows Pre-installation Environment features will
be selected. This installation also assumes the Virtual Machine Manager servers have Internet access. If that
is not the case, an offline installation can be performed. For more information for this installation option
and complete installation details, see Installing the Windows ADK.
Perform the following steps on both Virtual Machine Manager virtual machines.
Perform the following steps on each Virtual Machine Manager virtual machine.
6.2.5 Install the Command-Line Utilities in SQL Server 2012 with SP1
The Virtual Machine Manager installation requires that the command-line utilities and management tools
in SQL Server 2012 with SP1 are installed on the Virtual Machine Manager management server. Use the
following procedure to install the command-line utilities and management tools on the Virtual Machine
Manager management server.
Perform the following steps on each Virtual Machine Manager virtual machine.
This section assumes Shared VHDX files are in use. If using iSCSI LUNs, the iSCSI Initiator must be
configured on each virtual machine in SQL Server. If virtual Fibre Channel is used or if the cluster quorum
model is file share witness, you can skip this section.
Perform the following steps on the first Virtual Machine Manager virtual machine. These
operations must occur on a single node prior to creating the failover cluster.
Perform the following steps on the first Virtual Machine Manager virtual machine with an account
that has both local Administrator rights and permissions in AD DS to create the Virtual Machine
Manager CNOs.
6.2.9 Create the Virtual Machine Manager Distributed Key Management Container in
Active Directory Domain Services
The Virtual Machine Manager installation requires that an Active Directory container be created to house
the distributed key information for Virtual Machine Manager.
Note: If Virtual Machine Manager will be deployed by using an account with rights to create containers in
AD DS, you can skip this step.
Use the following procedure to create an AD DS container to house the distributed key information. These
instructions assume that a domain controller running Windows Server 2008 R2 is in use. Similar steps
would be followed for other versions of Active Directory, including versions in Windows Server 2008,
Windows Server 2012, and Windows Server 2012 R2.
Perform the following steps on the first Virtual Machine Manager virtual machine.
In addition, creating a high availability Virtual Machine Manager Library is a recommended practice given
that the Virtual Machine Manager servers are high availability servers.
The Private Cloud IaaS PLA physical architecture makes no recommendations for where the Virtual
Machine Manager Library resides, other than that it should have the same high availability as other
aspects of the installation. Although any file server cluster will suffice, this document details the steps
required to host the Virtual Machine Manager Library on the SQL Server Cluster created in earlier portions
of this document as an example.
Perform the following steps on the first SQL Server cluster node.
Perform the following steps on the Virtual Machine Manager virtual machine.
The Operations Manager installation process includes the high-level steps shown in Figure 7.
3
Installation of
System Center Post Installation
System Center 2012 R2
Perform 2012 R2 Configuration of
Operations Manager
Prerequisites Operations Operations
Installation
Manager Database Manager
and Server Roles
Download and
Install SQL Server Deploy and
Import the
Reporting Services Installation: Configure the OM
Prerequisite
and Analysis Reporting Server Agent on VMM
Management
Services Servers
Packs in OM
Install the
Perform Virtual
Operations
Configure SQL Machine Manager
Manager Console
Server Prerequites and Operations
on the VMM
Manager
Management
Integration
Servers
7.1 Overview
This section provides a high-level walkthrough for deploying Operations Manager into the fabric
management architecture. The following assumptions are made:
A base virtual machine running Windows Server 2012 R2 has been provisioned for Operations
Manager.
A SQL Server 2012 SP1 cluster with dedicated instances has been established in previous steps.
o The default SQL Server collation settings are SQL_Latin1_General_CP1_CI_AS.
o SQL Server full text search is required.
7.2 Prerequisites
The following environment prerequisites must be met before proceeding.
7.2.1 Accounts
Note: Specific requirements for Operations Manager are outlined in the Before You Begin section of
Deploying System Center 2012 R2 - Operations Manager in the TechNet Library.
The Operations Manager installation requires that .NET Framework 3.5 is enabled to support installation.
Use the following procedure to enable .NET Framework 3.5.
7.2.4 Install the SQL Server Reporting Services (Split Configuration) and Analysis
Services
The Operations Manager installation requires SQL Server Reporting Services and SQL Server Analysis
Services to be installed to support the Operations Manager reporting features and integration with Virtual
Machine Manager. Perform the following procedure to install SQL Server Reporting Services and SQL
Server Analysis Services to support the Operations Manager reporting features.
Note: A post-installation
configuration process will occur to
configure the reporting server
database to leverage the Operations
Manager data warehouse SQL Server
instance database engine.
Note: To test the URL directory from the Operations Manager server, Internet Explorer Enhanced
Security Configuration (ESC) needs to be temporarily disabled.
The Operations Manager installation requires that Microsoft Report Viewer 2012 is installed prior to
installing Operations Manager. Use the following procedure to install Microsoft Report Viewer 2012.
Perform the following steps on the Operations Manager management server virtual machine.
The following prerequisite steps must be completed prior to the installation of Operations Manager roles.
Note: Specific requirements for Operations Manager are outlined in the Before You Begin section of
Deploying System Center 2012 R2 - Operations Manager in the TechNet Library.
Perform the following steps on the Operations Manager management server virtual machines.
Perform the following steps on the primary SQL Server cluster node.
7.3 Installation
7.3.1 Install the Operations Manager Management Server
The following steps must be completed to install and configure the Operations Manager database and
server roles.
Perform the following steps on the first Operations Manager management server virtual machine.
3 For general guidance for database sizing, see System Center 2012 - Operations Manager Component Add – On.
Perform the following steps on the Operations Manager reporting server virtual machine.
After the installation is complete, the following tasks must be performed to complete Operations
Manager and Virtual Machine Manager integration.
7.4.1 Register the Required Service Principal Names for the Operations Manager
Management Servers
The following steps must be performed on a domain controller or on one of the Operations Manager
servers by using a domain admin account or an account with permissions to create service principal
names.
Perform the following steps on a domain controller in the domain where Operations Manager is
installed.
Perform the following steps on the Operations Manager management server virtual machine.
Perform the following steps on each Virtual Machine Manager virtual machine.
Perform the following steps on the Virtual Machine Manager virtual machine.
Installation of
System Center 2012 R2
Perform System Center
Service Manager
Prerequisites 2012 R2 Service
Installation
Manager Roles
Install Analysis
Management Request an Install
Install the Self-
Objects on the an SSL Certificate
Service Portal
Management and on the Self-Service
Server
Data Warehouse Portal Server
servers
Management server
A base virtual machine running Windows Server 2012 R2 has been provisioned for the Service
Manager management server role
A multi-node, SQL Server 2012 SP1 cluster with dedicated Service Manager instances has been
established in previous steps for Service Manager
o SCSMDB - instance for Service Manager management database.
.NET Framework 3.5 SP1 is installed
Microsoft Report Viewer 2008 Service Pack 1 Redistributable is installed
To install, see article 971119 in the Microsoft Knowledge Base
Microsoft SQL Server 2012 Native Client is installed:
To install, see SQL Server 2012 Native Client
The Microsoft SQL Server 2012 Analysis Management Objects are installed:
To install, see SQL Server Analysis Management Objects
A base virtual machine running Windows Server 2012 R2 has been provisioned for the Service
Manager management server role
A multi-node, SQL Server 2012 SP1 cluster with a dedicated instance has been established in
previous steps for Service Manager, which includes:
o SCSMAS – instance for SQL Server 2012 SP1 Analysis Services and SQL Server Reporting
Services databases
o SCSMDW – instance for Service Manager data warehouse databases
.NET Framework 3.5 SP1 is installed
Microsoft Report Viewer 2008 Service Pack 1 Redistributable is installed
To install, see article 971119 in the Microsoft Knowledge Base
Microsoft SQL Server 2012 Native Client is installed:
To download, see SQL Server 2012 Native Client
Microsoft SQL Server 2012 Analysis Management Objects are installed:
To install, see SQL Server Analysis Management Objects.
Microsoft SQL Server 2012 Reporting Services (split configuration) is installed
Microsoft SQL Server 2012 management tools are installed
A base virtual machine running Windows Server 2008 R2 (x64) has been provisioned for the
Service Manager management server role
A multinode, SQL Server 2012 SP1 cluster with a dedicated instance has been established in
previous steps for Service Manager
.NET Framework 3.5 SP1 is installed
Microsoft Report Viewer 2008 Service Pack 1 Redistributable is installed
To install, see article 971119 in the Microsoft Knowledge Base
Microsoft SQL Server 2012 Native Client is installed:
To download, see SQL Server 2012 Native Client
Microsoft SQL Server 2012 Analysis Management Objects are installed:
To install, see SQL Server Analysis Management Objects
SharePoint Foundation 2010 Service Pack 1 is installed
The .NET Framework 4 Redistributable
8.2 Prerequisites
The following environment prerequisites must be met before proceeding.
8.2.1 Accounts
Verify that the following service accounts have been created:
<DOMAIN>\ FT-SCSM-WF SCSM workflow account Must have permissions to send email
and must have a mailbox on the SMTP
server (required for the Email Incident
feature)
Must be member of local Users security
group on all SCSM servers
Must be a member of the Service
Manager Administrators user role for
email
Must be a local Admin on all SQL Server
nodes
<DOMAIN>\ FT-SCSM-SSRS SCSM reporting account Must be a local Admin on all SQL Server
<DOMAIN>\ FT-SCSM-OMCI SCSM Operations Manager CI Must be a member of the local Users
connector account security group on all SCSM servers.
Must be an Operations Manager
operator
<DOMAIN>\ FT-SCSM-ADCI SCSM Active Directory CI Must be a member of the local Users
connector account security group on the Service Manager
management server
Must have permissions to bind to the
domain controller that the connector
will read data from
Needs generic Read rights on the
objects that are being synchronized to
the Service Manager database from
Active Directory
<DOMAIN>\ FT-SCSM- SCSM Operations Manager Must be a member of the local Users
OMAlert alert connector account security group on the Service
Manager management server
Must be a member of FT-SCSM-Admins
DOMAIN>\ FT-SCSM-VMMCI Virtual Machine Manager CI Must be a member of the VMM Admin
connector account domain group and be in the Service
Manager Advanced Operator role
<DOMAIN>\ FT-SCSM-OLAP Service Manager Analysis Must be a local Admin on all SQL Server
Services account nodes
Table 12 Accounts
8.2.2 Groups
Verify that the following security groups have been created:
Perform the following steps on the Service Manager management server and the data warehouse
virtual machines.
8.2.4 Install Microsoft Report Viewer 2008 SP1 Redistributable on the Management
and Data Warehouse Servers
The Server Manager management server and the data warehouse server installations also require the
Microsoft Report Viewer 2008 SP1 Redistributable. Use the following procedure to install the Microsoft
Report Viewer 2008 SP1 Redistributable.
Perform the following steps on the Server Manager management server and on data warehouse
server virtual machines.
8.2.5 Install SQL Server 2012 Native Client on the on the Management and Data
Warehouse Servers
The Server Manager management server and data warehouse server installations also require that SQL
Server 2012 Native Client is installed prior to installation. Use the following procedure to install SQL
Server 2012 Native Client.
Perform the following steps on the Server Manager management server and on the data
warehouse server virtual machines.
Perform the following steps on the Service Manager data warehouse virtual machine.
8.2.8 Install SharePoint Foundation 2010 SP1 on the Self-Service Portal Server
SharePoint Foundation 2010 Service Pack 1 (SP1) must be installed to configure SharePoint with the SQL
Server 2012 SP1 installation. Use the following procedure to install SharePoint Foundation 2010 SP1 on
the Service Manager self-service portal server only.
Perform the following steps on the Service Manager self-service portal virtual machine.
Perform the following steps on the Service Manager self-service portal virtual machine.
8.2.10 Request and Install an SSL Certificate on the Self-Service Portal Server
Additionally, the Service Manager self-service portal installation requires a secure socket layer (SSL)
certificate to enable SSL on the portal website. If you are installing the self-service portal without SSL, you
can skip this section. There are several ways to request an SSL certificate. The following procedure
describes how to request the certificate through the IIS Manager console.
Perform the following steps on all Service Manager Servers virtual machines.
Perform the following step on an Active Directory domain controller in the target environment.
8.3 Installation
Perform the following steps on the first Service Manager management server virtual machine.
Perform the following steps on the Service Manager data warehouse server virtual machine.
Perform the following steps on the Service Manager management server virtual machine to
register the Service Manager data warehouse and enable reporting in the Service Manager
instance.
Perform the following steps on the System Center Service Manager self-service portal virtual
machine.
1. Log on to Service Manager self-
service portal server (not the
Service Manager management
server or the data warehouse
server).
2. From the Service Manager
installation media source, right-
click setup.exe and select Run as
administrator to begin setup.
Installation of
System Center 2012 R2 Post Installation
Perform System Center
Orchestrator Configuration of
Prerequisites 2012 R2
Installation Orchestrator
Orchestrator Roles
Installation:
Runbook,
Install the .NET Install the Virtual
Orchestration
Framework 3.5 Machine Manager
Console, Web
Feature Console
Service and
Designer Server
Install the
Install Silverlight Add an Additional
Microsoft Report
Runtime Runbook Server
Viewer 2010 SP1
Install the
Operations
Manager Console
Install Integration
Packs
Deploy and
Configure
Integration Packs
Base virtual machines running Windows Server 2012 R2 have been provisioned.
A multinode, SQL Server 2012 SP1 cluster with a dedicated instance has been established for
Orchestrator in previous steps.
.NET Framework 3.5 is required
9.2 Prerequisites
The following environment prerequisites must be met before proceeding.
9.2.1 Accounts
Verify that the following service accounts have been created:
Table 14 Accounts
9.2.2 Groups
Verify that the following security groups have been created:
9.3 Installation
9.3.1 Install the Runbook Server
Complete the following steps to install the all Orchestrator components.
5 Orchestrator guidance is provided by the following TechNet resources: Using Windows Firewall with Orchestrator and TCP Port Requirements.
Use the following procedure to install the Microsoft Report Viewer 2012 package.
Perform the following steps on the Orchestrator runbook server virtual machine.
Perform the following steps on the Orchestrator runbook server virtual machine.
6 The use of the Administrator account is used as an example. Use account information that is applicable to your installation.
7 The use of the Administrator account is used as an example. Use account information that is applicable to your installation.
Installation of
System Center 2012 R2
Perform System Center
App Controller
Prerequisites 2012 R2 App
Installation
Controller
Install Silverlight
Runtime
Request and
Install an SSL
Certificate
Installation of the
Virtual Machine
Manager Console
A base virtual machine running Windows Server 2012 R2 has been provisioned for App Controller.
A SQL Server 2012 SP1 cluster with dedicated instance has been established in previous steps for
App Controller.
The System Center Virtual Machine Manager console is installed.
.NET Framework 3.5 is installed.
Microsoft Silverlight Runtime is installed.
A Trusted Server Authentication (SSL) Certificate (the CN field of the certificate must match the
server name) is installed.
10.2 Prerequisites
The following environment prerequisites must be met before proceeding.
10.2.1 Accounts
Verify that the following service accounts have been created:
10.2.2 Groups
Verify that the following security groups have been created:
10.3 Installation
The Service Management Automation installation process includes the high-level steps shown in Figure
11:
Installation of
Service Management
Perform Service
Autiomation
Prerequisites Management
Installation
Automation
Install the
Runbook Worker
Install the
Powershell
Automation
Module
11.2 Prerequisites
The following environment prerequisites must be met before proceeding.
Perform the following steps on the Service Management Automation server virtual machine.
11.3 Installation
11.3.1 Install the Web Service
Complete the following steps to install the Web Service.
Perform the following steps on the Service Management Automation server virtual machine.
Perform the following steps on the Service Management Automation server virtual machine.
Perform the following steps on the Service Management Automation server virtual machine.
The System Center Service Provider Foundation (SPF) 2012 R2 installation process includes the high-level
steps shown in Figure 12:
8
Installation of
System Center Service System Center
Perform
Provider Foundation Service Provider
Prerequisites
2012 R2 Installation Foundation 2012
R2
Install ASP.NET
Model View
Control (MVC) 4
Install WCF
This section provides a high-level walkthrough for how to set up Service Provider Foundation. The
following requirements are necessary for the setup:
A base virtual machine running Windows Server 2012 R2 has been provisioned for Service
Provider Foundation.
A SQL Server 2012 SP1 cluster with dedicated instance has been established in previous steps for
Service Provider Foundation.
The System Center Virtual Machine Manager console is installed.
A Trusted Server Authentication (SSL) Certificate (the CN field of the certificate must match the
server name) is installed.
12.2 Prerequisites
The following environment prerequisites must be met before proceeding.
12.2.1 Accounts
Verify that the following service accounts have been created:
12.2.2 Groups
Verify that the following security groups have been created:
Perform the following steps on the Service Provider Foundation server virtual machine.
Web Server
o Common HTTP Features
Default Document
Directory Browsing
HTTP Errors
Static Content
o Health and Diagnostics
HTTP Logging
o Performance
Static Content
Compression
o Security
Request Filtering
Basic Authentication
Windows
Authentication
o Application Development
o Management Tools
IIS Management
Console
IIS Management Scripts
and Tools
Management Service
Perform the following steps on the Service Provider Foundation server virtual machine.
Perform the following steps on the Service Provider Foundation server virtual machine.
Perform the following steps on the Service Provider Foundation virtual machine.
12.3 Installation
Perform the following steps on the Service Provider Foundation server virtual machine.
The Service Reporting installation process includes the high-level steps shown in Figure 11:
Installation of
System Center 2012 R2 Perform System Center
Service Reporting Prerequisites 2012 R2 Service
Reporting
This section provides a high-level walkthrough for how to set up Service Reporting. The following
requirements are necessary for the setup:
A base virtual machine running Windows Server 2012 R2 has been provisioned for Service
Reporting.
A SQL Server 2012 SP1 cluster with dedicated instance has been established in previous steps for
App Controller.
The System Center Virtual Machine Manager console is installed.
.NET Framework 3.5 is installed.
Microsoft Silverlight Runtime is installed.
A Trusted Server Authentication (SSL) Certificate (the CN field of the certificate must match the
server name) is installed.
13.2 Prerequisites
The following environment prerequisites must be met before proceeding.
13.2.1 Accounts
No specific service accounts are required for this component
13.2.2 Groups
No specific groups are required for this component.
The Reporting Services installation requires that .NET Framework 3.5 is enabled to support installation.
Use the following procedure to enable .NET Framework 3.5.
Perform the following steps on the Server Reporting server virtual machine.
Perform the following steps on the Service Reporting server virtual machine.
Installation of
Windows Azure Pack Perform
Windows Azure
2012 R2 Installation Prerequisites
Pack 2012 R2
Deploy IIS
Recommended
Configfuration
14.1 Overview
Windows Azure Pack for Windows Server is a collection of Windows Azure technologies, available to
Microsoft customers at no additional cost for installation into your data center. It runs on top of Windows
14.2 Prerequisites
The following environment prerequisites must be met before proceeding.
14.2.1 Accounts
Verify that the following service accounts have been created:
14.2.2 Groups
No specific groups are required for this component.
Perform the following steps on both Windows Azure Pack server virtual machines.
5. Click Add.
6. Click Install.
Perform the following steps on both Windows Azure Pack server virtual machines.
Perform the following steps on the first Windows Azure Pack server virtual machine.
Perform the following steps on the second Windows Azure Pack server virtual machine.
The PowerShell Deployment Toolkit (PDT) provides the framework to automate the deployment of the
IaaS PLA Architecture. The toolkit consists of a set of PowerShell scripts and configuration files that used
together can automate the collection of installation prerequisite files, creation of virtual machines
(including OS and domain join), advanced configuration of the virtual machines, installation of the System
Center and other software components, and integration between components.
PDT supports different deployment modes based on the configuration of the files or the way PDT tools
are leveraged.
GreenField - Creates a new forest and installs the scenario into that forest
Integration - Creates VMs and install the scenario into an existing forest
Pre-Existing - Uses pre-existing servers (Virtual or physical) and installs the scenario into an existing
forest
Intelligent Restart - Validates existing deployed scenario and adds only what is missing
Greenfield is used for most lab and POC deployments or for a customer that wants to start from scratch.
Integration is the typical deployment mode where the customer already has an existing active directory
and other established services and PDT should be run to leverage those services. Pre-Existing mode
supports an environment where the virtual machines or physical servers have already been deployed and
joined to the domain and PDT just needs to configure the machines and then perform the installation.
Intelligent restart deployment mode allows you to add roles/features to a previous deployment, or allows
you to fix a failed deployment scenario and rerun the deployment. In this mode, PDT verifies all existing
deployed components/roles and skips them if already complete.
Only the greenfield deployment mode requires a <DOMAIN> section exist in the variable.xml. This
requires that the information on the forest that will be created and the VM that will be used as the
domain controller for the forest.
Workflow.xml – defines all possible deployment building blocks and default settings
Downloader.ps1 – downloads prerequisites from the Internet
VMCreator.ps1 – Creates Virtual machines
Installer.ps1 – Installs roles and components on the virtual machines or physical servers
Variable.xml – Defines the deployment scenario and settings
Optionally you can also have a per VM scripts that are run prior to the Installer.ps1 script. These are used
to perform machine configuration and special actions like building clusters.
IaaS Product Line Architecture Deployment Guide 411
Workflow versus Variable
Workflow defines all the possible variables that are required and specifies default values. Unless a
variable in workflow.xml is tagged with Required =True, it does not have to be placed in the
variable.xml unless the default values in workflow are not acceptable. You can specify all variables
in variable.xml and they override the default workflow.xml values. The PDT code loads all values
from Workflow.xml, then loads all values from variable.xml, overwriting any default values from
workflow.xml.
Run the Downloader.ps1 script to download all the prerequisites from the Internet into a Source
folder (this only has to be done once to generate the source folder)
Add the customers System Center and Windows source files to the source folder
Edit the variable.xml to match the deployment scenario and specify information like product keys
Modify the optional per-VM scripts depending on the deployment scenario requirements
Run the VMCreator.ps1 script to create all the required virtual machines
Run the Installer.ps1 script to install all the of the roles and components
The following sections will describe each of these steps and provide insight into how the PDT engine
works. The steps will use an example variable.xml file for the IaaS PLA architecture.
Perform the following steps on a machine with Internet Access and PDT installed in C:\PDT-PLA.
Optional Syntax:
.\Downloader.ps1 –
deploymentonly
Only downloads the prerequisites for
the defined variable.xml deployment
scenario
.\Downloader.ps1 –Path
C:\<Downloadfolder>
Specifies the path to variable and
workflow files (default is local path)
7. In the
C:\PDTDOWNLOAD\SystemCenter2
012R2 folder create a directory called
VirtualMachineManager and copy
the contents of a Virtual Machine
Manager 2012 R2 ISO to that folder
8. In the
C:\PDTDOWNLOAD\SystemCenter2
012R2 folder create a directory called
ServiceManager and copy the
contents of a Service Manager 2012
R2 ISO to that folder
10. In the
C:\PDTDOWNLOAD\SystemCenter2
012R2 folder create a directory called
Orchestrator and copy the contents
of an Orchestrator 2012 R2 ISO to that
folder
Global Variables
Components
Roles
SQL
VMs
The following sections explains the different sections and items that would need to be modified per
customer scenario.
The top of the variable.xml file has a section for global variables
InstallerServiceAccount – the Account that will be used by PDT to perform the installation. This
account must have local admin rights on each VM. By default during a greenfield deployment, this
account is created in the domain for you. In all other deployment modes, this account must be pre-
created before the installer.ps1 is run.
InstallerServiceAccountPassword – this is the clear text password for the installation account.
SourcePath – This is the folder that the source files will be copied from during deployment
Download – This is the folder that downloader.ps1 will use to store the download files.
SystemCenter2012Productkey – This is the customer product key
SystemCenter2012R2Productkey – This is the customer product key
15.3.2 Components
The <Components> section defines the input variables that will be used during the role installation. Each
component in the Components section is framed by a <Component> section. The variables for that
component are specified within that section.
To understand what component variables are required for a role, you can go to the WORKFLOW.XML file
in the <Components> section to see all the defined possible variables. Only those with the designator
Required=”True” are required to be specified in the variable.xml, assuming the defaults values in the
workflow.xml are acceptable values.
For example, in the workflow.xml file for the System Center 2012 R2 Virtual Machine Manager role, the
following variables are defined in the component section
The last three variables are only required for a scenario where VMM is being deployed in HA mode. The
TopContainerName is the container in AD that will be created or must exist for Distributed Key
Management to be installed and configured. The ServerName is the cluster group name for the HA install,
and the StaticIPAddress is the IP address of the cluster resource.
The variable.xml file has many variables that have values that must be modified for the customer
environment.
Component Editing
Component sections can be part of the variable.xml file even if there is no corresponding role that
is being deployed. This minimizes the editing required in the case that a role is not needed for a
current deployment scenario.
If the variable.xml file does not have a <component> section for a role that you would like to deploy, then
you can get the potential component variables by opening the workflow.xml file, search for the
<Components> section, finding the associated component, then copying that component section to the
variable.xml. The section copied from the workflow will require slight editing.
As an example, let’s say you want to deploy Configuration Manager 2012 R2, but you do not have the
component section in the variable.xml. You copy that component section from workflow and paste it in
the variable.xml
The scripts load the values from the workflow.xml first, then overwrite them with the values
specified in the variable.xml. There is no issue with having the same values in the workflow and
the variable, since the end result will be the same.
The last three variables in the component section above only apply to the creation and
configuration of a VMM HA clustered installation.
The values for variable values for the DNSSuffix, FileShare and CertStore accounts/groups must be
syncd between the Component section and the section in DC01.PS1 preinstall script that actually
creates the values.
15.3.3 Roles
The <Roles> section defines System Center, SQL tools, Windows Azure Pack roles or any other defined
role that exists in the workflow.xml that will be deployed as part of a scenario.
Roles defines every installable component for an installation. For example, a Virtual Machine Manager
deployment consists of a management server, a database server, a console server, and in a High
Availability deployment scenario, the cluster nodes.
<Role Name="System Center 2012 R2 Virtual Machine Manager Database Server" Server="SCVMMDB.CONTOSO.com"
Instance="SCVMMDB" SQLCluster="True" />
<Role Name="System Center 2012 R2 Virtual Machine Manager Management Server" Server="VMM01.CONTOSO.com" />
<Role Name="System Center 2012 R2 Virtual Machine Manager Console" Server="RD01.contoso.com"/>
Alternative HA roles
<Role Name="System Center 2012 R2 Virtual Machine Manager Cluster Active Management Server"
Server="VMM01A.CONTOSO.com" />
<Role Name="System Center 2012 R2 Virtual Machine Manager Cluster Passive Management Server"
Server="VMM01B.CONTOSO.com" />
Role Name
Server the role is deployed
Instance name of the database if the role is for a database (MSSQLSERVER or a named instance)
Optionally the specification that the SQL instance is actually clustered
You can deploy each role component on a separate server or combined on a single server (assuming the
product supports the consolidated scenario). So if you wanted to deploy
In the example above, you would either specify the single management server for a non-HA
deployment, or the alternative lines for the two cluster servers in an HA scenario, but not both.
Note that the actual creation of the cluster is not a native feature of PDT role installation. The
cluster has to be built prior to running the Installer.ps1 script. One way of accomplishing that is to
use the per VM pre-installer script.
In the example above, the Database Server specifies a named instance SCVMMDB and specifies
that the instance should be clustered.
If you did not want to cluster SQL, the role line would look like
The Server name can specify the VMM management server for a local SQL install or a remote
non-clustered SQL server.
Some corporate environments highly restrict who can install and access SQL servers and SQL
instances. To support the installation using a preexisting SQL server and instance, PDT has an
option called EXISTING=TRUE than can be used on roles that require SQL instanced to be
specified. Note that there is no validation when you use this option. The installer account needs
appropriate SQL permissions, the collation needs to be correct, correct SQL features need to be
installed prior to attempting the PDT installation. The Installer account does not need Windows
admin permissions in this instance since it never does anything to that server. To use the option
the Role line looks like
<Role Name="System Center 2012 R2 Virtual Machine Manager Database Server"
Server="VMMDB.contoso.com" Instance="VMMDB" Existing="True"/>
If the sample variable.xml does not have a role that you want to deploy, you can obtain the Role format
and role component names from workflow.xml. To find a role in the workflow.xml, search for <Roles> and
then find the role that needs to be added. The roles for a System Center component are normally
grouped together.
<Role Name="System Center 2012 R2 Configuration Manager Database Server" Component="System Center 2012 R2
Configuration Manager" SQL="True">
<Role Name="System Center 2012 R2 Configuration Manager Provider Server" Component="System Center 2012 R2
Configuration Manager">
<Role Name="System Center 2012 R2 Configuration Manager Site Server" Component="System Center 2012 R2
Configuration Manager">
<Role Name="System Center 2012 R2 Configuration Manager Console" Component="System Center 2012 R2
Configuration Manager">
To use the role line from the workflow you will need to edit it to conform to the role syntax. The examples
above have the sections highlighted that need to be edited or removed. Every <role> line will need to
have the Component= specification removed and replaced with a Server= value added that specifies the
server the role should be installed on. Lines that have SQL=TRUE require the specification of SQL Instance
in the <role> line. That can be just an Instance= or the additional SQLCluster=”true” if you are clustering
the SQL instance for this role.
Note that when you copy the <ROLE> section from the workflow.xml that it does not have the
closing XML tag /> at the end of the line, be sure to add that tag to prevent XML formatting
issues.
<Role Name="System Center 2012 R2 App Controller Database Server" Server="SCDB.contoso.com" Instance="SCDB"
SQLCluster="True" />
<Role Name="System Center 2012 R2 App Controller Server" Server="AC01.contoso.com"/>
<Role Name="System Center 2012 R2 App Controller Console" Server="AC01.contoso.com"/>
Reporting Server
Note that the Operations Manager Reporting Server requires a local SQL install on the server,
therefore the Instance=”SMSQLSERVER” is specified for that role.
<Role Name="System Center 2012 R2 Service Provider Foundation Database Server" Server="SCDB.CONTOSO.com"
Instance="SCDB" SQLCluster="True" />
<Role Name="System Center 2012 R2 Service Provider Foundation Server" Server="SPF01.CONTOSO.com" />
<Role Name="System Center 2012 R2 Service Management Automation Database Server" Server="SCDB.CONTOSO.com"
Instance="SCDB" SQLCluster="True" />
<Role Name="System Center 2012 R2 Service Management Automation Web Service Server" Server="SMA01.CONTOSO.com"
/>
This is the role example for a Distributed deployment pattern of Windows Azure Pack
Windows Azure Pack 2013 Websites requires that each role be placed on a separate server.
To facilitate the ability to install WAP Websites at customers with no Internet access, the
installation of WAP Websites is always done using an offline approach. This requires that an
offline version of the installation feed is made available prior to installing any of the Websites
roles. This is the purpose of the Offline Feed Server.
15.3.4 SQL
The <SQL> section defines SQL deployment configuration that will be deployed as part of a scenario. This
includes the definition of clustered and standalone instances of SQL. For every <role> definition that
references a SQL instance, a corresponding SQL instance or clustered instance definition must exist in the
SQL section.
Cluster= value corresponds to the Server value from the role definition
Version= value defines the version of SQL to install
Variables define the information for Groups, service accounts, service account passwords, and storage
locations for databases and log files. In addition, Cluster resource settings are defined for IP address,
network name, subnet masks, Cluster resource disk names that map to the drive letters defined for the
database and log directories, and the nodes of the cluster.
Storage Choices
SQL Guest Clusters can utilize SMB shares, SharedVHDX, or iSCSI LUNS for the storage of the
database and log files. The SQLClusteredDisks variable is only required for SharedVHDX and iSCSI
LUN approaches.
SMB UNC approach is the easiest to configure because you do not have any additional setup
other than the remote share. Paths are specified using \\FS01\SQL\SCVMMDB notation
ShareVHDX requires knowledge of the cluster resource disk name so that the SQLClusterDisk
section can reference the clustered disks that correspond to the drive letters specified for the
database and log storage locations.
SQL Clusters
A SQL cluster can have two or more nodes in the cluster. Specifying the nodes and the node
preference is required for a clustered SQL install. Adding an additional node only requires an
addition <node> in the <Cluster> section.
Cluster Resources
Cluster resources such as cluster IP addresses, must be validated manually in the variable file to
ensure that no conflicts occur.
Leveraging the SharedVHDX capability requires no page file or addition non-shared data disks are
added to a cluster nodes to ensure the proper mapping of storage to the cluster.
Standalone SQL instances. The following example defines a standalone SQL instance for the WAP
Websites database server role definition.
Server = value corresponds to the Server value from the role definition for a standalone SQL server
Instance = value defines the default or named database instance to create
Version= value defines the version of SQL to install
Variables define the information for Admins, service accounts, service account passwords, and storage
locations for databases and log files.
Data Drives
The VM definition for a standalone SQL server must specify the number of data disks to ensure all
the corresponding drive letters are available. Assuming a single C: drive, a standalone SQL server
that stores database and logs on D:, E:, F: and G: requires 2 data disks to be specified in the VM
definition.
It is possible for a single standalone or cluster SQL server to contain multiple instances. To accomplish this
separate instance sections must exist in the <SQL> section that contains the same Server name, but a
different instance name. For example, to have a difference instance installed on the SitesDB01 server
called TESTINSTANCE, the additional section would look like
The actual Instance name ($Instance) is used in the path for storing the files.
The <VMs> section defines the number and configuration of the virtual machines that will be deployed as
part of a scenario when you run the VMCreator tool.
15.3.5.1 <COUNT>
The <COUNT> section defines the number of virtual machines that will be created as part of a scenario
when you run the VMCreator tool.
<Count>36</Count>
The COUNT value should correspond to the number of <VM> sections defined later in the <VMs>
section. If the COUNT value is less than the number of <VM> sections, then it will fail validation. If the
COUNT value is more than the number of <VM> sections, then once the last defined VM section has been
created, then additional VMs will be created using the <VMName><PREFIX> value in the <Default>
section.
15.3.5.2 <DOMAIN>
The <DOMAIN> section defines the domain information that will be used to create a new DC for a new
domain. It specifies the NAME of the new domain, and defines the OUs that will be created to store the
service accounts and groups that are pulled from the variable.xml and workflow.xml files. Any
deployment scenario component section or SQL section that defines variable that contains a
ServiceAccount, AdminGroup will be parsed and automatically create the account and group in the new
domain.
<Domain>
<Name>CONTOSO.com</Name>
<ServiceAccountOU>Services.HQ</ServiceAccountOU>
<GroupOU>Groups.HQ</GroupOU>
</Domain>
If the <DOMAIN> section is specified in the variable.xml, then the first <VM> defined will be used to
create the new DC for the new forest. Specifying the <DOMAIN> section is enabling the greenfield
scenario for PDT.
The <DEFAULT> section defines the default VM settings that will be used when creating VMs using
VMCreator. Any of these values can be overridden in a <VM> section to specify different values.
<Default>
<Host>Localhost</Host>
<VMFolder>E:\PLAVMs</VMFolder>
<VHDFolder>E:\PLAVMs</VHDFolder>
<SHAREDVHDXFolder>C:\ClusterStorage\Volume1\SharedVHDX</SHAREDVHDXFolder>
<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>
<NetworkAdapter>
<VirtualSwitch>INSIDE</VirtualSwitch>
<IP>
<Prefix>192.168.1.</Prefix>
<Sequence>4</Sequence>
<Mask>24</Mask>
<Gateway>192.168.1.1</Gateway>
<DNS>192.168.1.4</DNS>
</IP>
</NetworkAdapter>
<OSDisk>
<Parent>C:\VHDs\Win2012r2RTM.vhdx</Parent>
<Type>Differencing</Type>
</OSDisk>
<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>P@ssw0rd</Password>
<Username>Administrator</Username>
</Credentials>
<OrganizationalUnit>Servers.HQ</OrganizationalUnit>
</JoinDomain>
<AdministratorPassword>P@ssw0rd</AdministratorPassword>
</Default>
Variable Description
HOST Hyper-V host that the VMs will be created on.
VMFOLDER Default folder for VM configuration files
VHDFOLDER Default folder for VHD/VHDX files
SHAREDVHDXFOLDER Default folder for SharedVHDX files for guest clusters (must be on a
drive that has the svhdxflt filter driver attached)
VMNAME <PREFIX> - prefix for all VM names that have no <VM> section
15.3.5.4 <VM>
The <VM> section defines the VM and any settings that should be overridden for the VM when creating
VMs using VMCreator. Each <VM> section requires only one value <VMNAME> be specified to define the
VM name in the admin GUI and the actual name of the VM within the OS.
The following is an example section from the IaaS PLA variable.xml file sample.
Note that every node of a cluster must have the same SharedDataDisk section specified. So you
can see that the fifth VM section for DB01B has the same section defined. This tells VMCreator to
create and attach the SharedVHDX data disks to both nodes of the cluster. The PREFIX value must
be unique between clusters.
<VM Count="1">
<VMName>DC01</VMName>
</VM>
<VM Count="2">
<VMName>RD01</VMName>
</VM>
<VM Count="3">
<VMName>FS01</VMName>
<DataDisks>
<Count>1</Count>
<Format>VHDX</Format>
<Size>200</Size>
</DataDisks>
<NetworkAdapter>
<IP>
<Address>192.168.1.199</Address>
<Mask>24</Mask>
<Gateway>192.168.1.1</Gateway>
<DNS>192.168.1.4</DNS>
</IP>
</VM>
<VM Count="4">
<VMName>DB01A</VMName>
<Memory>
<Startup>1024</Startup>
<Minimum>512</Minimum>
<Maximum>8192</Maximum>
<Buffer>5</Buffer>
</Memory>
<SharedDataDisks>
<Count>17</Count>
<Prefix>Instance</Prefix>
<Format>VHDX</Format>
<Size>20</Size>
</SharedDataDisks>
</VM>
<VM Count="5">
<VMName>DB01B</VMName>
<Memory>
<Startup>1024</Startup>
<Minimum>512</Minimum>
<Maximum>8192</Maximum>
<Buffer>5</Buffer>
</Memory>
<SharedDataDisks>
<Count>17</Count>
<Prefix>Instance</Prefix>
<Format>VHDX</Format>
<Size>20</Size>
</SharedDataDisks>
</VM>
1) The PowerShell script for the VM must be created and placed in a specific folder location.
2) When VMCreator is executed, the path to the folder location must be specified.
Preinstall PowerShell scripts are injected into the VMs C:\Temp folder and executed as a run once action
once the VM has joined the domain and rebooted. The script is run in the context of the Installer service
account.
There is no real limitation to what can be executed in the preinstaller script except that is cannot have any
dependency on an installation that the Installer.ps1 script will execute after all VM preinstaller scripts are
complete.
Some example preinstaller scripts will be shown from the IaaS PLA deployment scenarios. The complete
scripts can be obtained in Appendix E.
DC01 is created in a greenfield deployment scenario. A DC01 preinstall script can be useful to accomplish
things like creating cluster accounts, additional OUs, loading additional roles like DHCP, or creating DNS
records.
In the sample below, the following actions are being completed once the DC01 has installed Active
Directory Domain Services:
Log the script execution to the local drive for later troubleshooting
Import the AD PowerShell module
Create the DKM container in AD to support a VMM HA installation
Create Cluster accounts that are needed for guest clustering in this scenario
Copy the CMTrace tool from the C:\Temp folder
Create Users, Groups, and a DNS subdomain records that are required for a WAP Websites
deployment
###################################
# DC01 Preinstall Script
###################################
# Import AD module
While (!(Test-Path "AD:\")) {
If (Get-Module ActiveDirectory) {Remove-Module ActiveDirectory;Start-Sleep 1}
Import-Module ActiveDirectory -ErrorAction SilentlyContinue
}
###################################
# Create VMM DKM container
###################################
Write-Host "Create AD container for VMM"
New-ADObject -Name 'VMMDKM' -Type Container -Path 'DC=contoso,DC=com' -ErrorAction SilentlyContinue
$VMMSA = (Get-ADUser -Identity 'vmm-SVC').SID
$acl = Get-Acl -Path "AD:CN=VMMDKM,DC=contoso,DC=com"
$nullGuid = New-Object Guid 00000000-0000-0000-0000-000000000000
$ace = New-Object System.DirectoryServices.ActiveDirectoryAccessRule
$VMMSA,"GenericAll","Allow","All",$nullGuid
$acl.AddAccessRule($ace)
Set-Acl -Path "AD:CN=VMMDKM,DC=contoso,DC=com" -AclObject $acl
###################################
# Create cluster computer accounts
###################################
###################################
# Copy CMTrace for troubleshooting
###################################
New-Item -Path "C:\" -Name "CMTrace" -ItemType Directory
Copy-Item -Path "C:\Temp\CMTrace.exe" -Destination "C:\CMTrace"
###################################
# Section for WAP Websites
###################################
Write-Host "Creating File and Cert Groups"
New-ADGroup -Name "FileShareOwners" -SamAccountName FileShareOwners -GroupCategory Security -GroupScope Global
-DisplayName "FileShareOwners" -Path "OU=Groups,OU=HQ,DC=CONTOSO,DC=com"
New-ADGroup -Name "FileShareUsers" -SamAccountName FileShareUsers -GroupCategory Security -GroupScope Global -
DisplayName "FileShareUsers" -Path "OU=Groups,OU=HQ,DC=CONTOSO,DC=com"
New-ADGroup -Name "CertStoreFSUsers" -SamAccountName CertStoreFSUsers -GroupCategory Security -GroupScope
Global -DisplayName "CertStoreFSUsers" -Path "OU=Groups,OU=HQ,DC=CONTOSO,DC=com"
In addition to copying the preinstall scripts to the C:\Temp folder of the VM, any other files that
are placed in the Preinstall script folder will also be copied to the C:\Temp folder. If you want
those files to existing post the PDT installation, you must add code to the preinstall script to copy
the files to a different directory.
For example, since the DC01 VM is where the Installer,ps1 script is executed from and the output
is in a log format used by Configuration Manager, using the CMTrace.exe is a good way to view
the Installer logs stored in %localappdata%\Installer folder.
You can place the CMTrace.exe in the DC01 preinstall folder and use the following PowerShell to
copy the tool to the C:\CMTRACE folder.
In the DC01 sample preinstall script, there are values that are deployment specific and must be
modified prior to running the PDT deployment. When using prebuilt IaaS PLA scenario files that
you verify the variable.xml and the preinstall scripts have been modified based on the customer
specific scenario.
DB01A is the first of a two node database cluster node for the IaaS PLA deployment scenario.
In the sample below, the following actions are being completed once the DB01A has joined the domain:
Log the script execution to the local drive for later troubleshooting
Define the other nodes for the cluster and wait for them to come online
Install Failover Clustering on all cluster nodes
Create the two node cluster for DB01A and DB01B with no storage
###################################
# DB01A Preinstall script
###################################
###################################
# Define the Cluster nodes that are being created other than this node
###################################
$Nodes = @("DB01B")
# Wait for cluster nodes
###################################
# Install failover clustering on All nodes
###################################
$Nodes = @("DB01A","DB01B")
$Jobs = @()
Write-Host "Installing failover clustering"
$Nodes | ForEach-Object {
$Jobs += Start-Job -Name $_ -ScriptBlock {
$Computer = $args[0]
Invoke-Command -ComputerName $Computer -ScriptBlock {
$Computer = $args[0]
Install-WindowsFeature Failover-Clustering -ComputerName $Computer -IncludeManagementTools
} -ArgumentList @($Computer)
} -ArgumentList @($_)
}
$Jobs | ForEach-Object {
While ((Get-Job -Id $_.Id).State -eq "Running") {Start-Sleep 1}
}
# Create cluster
# Cleanup
Get-ChildItem -Path 'C:\Temp' -Recurse | Where-Object {$_.Name -ne "Setup.bat"} | ForEach-Object
{$_.Attributes = 'Normal'}
Get-ChildItem -Path 'C:\Temp' -Recurse -Hidden | Where-Object {$_.Name -ne "Setup.bat"} | ForEach-Object
{$_.Attributes = 'Normal'}
Get-ChildItem -Path 'C:\Temp' | Where-Object {($_.Name -ne "Setup.bat") -and ($_.Name -ne "DBCLuster.txt")} |
Remove-Item -Recurse
A Two node SQL cluster can use multiple methods of storage for the clustered database and log
files. If the two node cluster is using SMB versus SharedVHDX, then the section of code that
attaches the SharedVHDX would not be needed because the SharedVHDX data drives would not
be specified in the variable.xml <VM> section and the <SQL> <CLUSTER> section would have
specified UNC paths for the database and log paths. See Appendix E for a variable.xml with UNC
paths.
SETUP.BAT
At the end of the DB01A.PS1 pre-install script is a section with three lines entitled “Cleanup”. The
last line basically deleted everything in the C:\Temp folder except the Setup.bat that PDT
generated and placed there. Setup.bat actually does some tracking and at the end of a successful
deployment, writes a registry value that the Installer script looks for to verify that the server
installation as completed successfully. If Setup.bat does not run writes the registry value, Installer
will hang waiting on the VM.
Create a PostInstaller.ps1 script and place it in the DC01 preinstall directory. After a successful deployment
scenario is complete, PDT Installer will automatically launch the PostInstaller.ps1 script on the DC01
VM. The fact that the PowerShell is running on the DC01, any actions that need to be performed on VMs
other than DC01 will require the use of PowerShell remoting.
As an example, when we create a clustered VMM installation, we create a remote library share on the FS01
server. That share needs to be registered on the VMM server. The following PowerShell could be run
manually on the VMM server after installation, or we can convert it to using PowerShell remoting and run
it as part of the PostInstaller.ps1 script.
#
# Add a Library Server and Share to the VMM installation
#
# Get the Credentials
$pwd = "Pass@word1" | ConvertTo-SecureString -asPlainText -Force
$Creds = New-Object System.Management.Automation.PSCredential("contoso\Administrator", $pwd)
# Create the Library Server and Share
{$vmmServer = Get-SCVMMServer -ComputerName "VMM01.Contoso.com"
Add-SCLibraryServer -ComputerName "FS01.Contoso.com" -Credential $Creds -vmmserver $vmmServer -
RunAsynchronously
Add-SCLibraryShare -Description "Remote Library Share" –SharePath
"\\FS01.contoso.com\MSSCVMMLibrary"
Note
The Sleep command is to give VMM the time to recognize the new library server before you attempt to add a
share to it. You could also write logic using the Get-SCLibraryServer to wait for the existence of the library server.
In order to leverage pre-install scripts, VMCreator must be executed using the –SETUP command line
option.
Typically you would create the folders under the PDT source folder. So if the PDT source folder is C:\PDT-
PLA and you had preinstall scripts for DC01, DB01A, and VMM01A, the structure would look like
C:\PDT-PLA\
\DC01
\DB01A
\VMM01A
If the <DOMAIN> section has been specified in the variable.xml file, the executing VMCreator.ps1, will
copy all the required files into the DC VM and automatically execute Installer.ps1 as part of the process. If
the <DOMAIN> section is not specified in variable.xml, then once VMCreator.ps1 is complete, Installer.ps1
must be executed manually.
15.7 Installer.ps1
PDT Installer.ps1 script performs the actual <role> installations as defined in the variable.xml. As
mentioned above, Installer.ps1 can be executed automatically in a greenfield deployment scenario or can
be execute manually in a non-greenfield deployment scenario.
Installer.ps1 supports the following command line options (none are mandatory):
ValidateOnly – specifies whether the installer should just validate the installation attempt versus
actually deploy, Default is FALSE, TRUE does validation only
PATH - Specifies the path that should VMCreator should read .xml input files
VALIDATESET – specifies the scope of validation, ALL, LOCAL, ActiveDirectory, REMOTE
Typically Installer.ps1 is run with no options. This starts the validation of the variable.xml, the deployment
scenario, the SQL configuration, the role dependencies, the media source folder, and many other items
including is all the specified servers can be contacted.
During the execution of Installer.ps1, log files are created for each server that roles are being installed on
and those logs are also rolled up into a single installation log. The logs are created on the machine that is
executing Installer.ps1. All logs are placed in the %localappdata%\installer folder. In addition each server
has logs that are created for each application installed. Those local server logs are place in the C:\Temp
folder in a subfolder named with a GUID.
IaaS Product Line Architecture Deployment Guide 443
Reading Log Files
It is highly recommended to use the CMTrace.exe tool from Configuration Manager 2012 R2
Tools to read the PDT log files.
Refer to Appendix F: for more information and sample code on automating some of these actions.
As an example, we will use Virtual Machine Manager 2012 R2 installed to use a remote clustered SQL
2012 Availability group. The process would consist of the following high level steps
1. Create your VMs using VMCreator.ps1, creating the two node cluster using the –setup option. (like
shown in the Pre-Install scripts section)
2. For the first pass of Installer.ps1 – install standalone SQL instances, not clustered
instances. Variable.xml would look something like…
<Roles>
<Role Name="SQL Server 2012 Database Server" Server="DB01A.contoso.local" Instance="MSSQLSERVER" />
<Role Name="SQL Server 2012 Database Server" Server="DB01B.contoso.local" Instance="MSSQLSERVER" />
</Roles>
<SQL>
<Instance Server="DB01A.contoso.local" Instance="MSSQLSERVER" Version="SQL Server 2012">
<Variable Name="SQLAdmins" Value="CONTOSO\SQL Admins" />
<!-- Whatever other SQL installation options you want to specify -->
</Instance>
<Instance Server="DB01B.contoso.local" Instance="MSSQLSERVER" Version="SQL Server 2012">
<Variable Name="SQLAdmins" Value="CONTOSO\SQL Admins" />
<!-- Whatever other SQL installation options you want to specify -->
</Instance>
</SQL>
3. After the first pass of DPT completes, you will need to create the Availability Group and the Listener.
The following script is an example of creating an availability group and listener.
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo") |
Out-Null
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.SmoExtended") |
Out-Null
$SqlServerPrimName = "DB01A"
$SqlServerSecName = "DB01B"
$SqlAgName = "AG01"
$AgListenerName = "AG01"
$AgListenerPort = 1433
$HadrEndpointName = "HardEndpoint"
$HadrEndpointPort = 5022
Enable-SqlAlwaysOn -Path SQLSERVER:\SQL\$SqlServerPrimName\Default -Force
Enable-SqlAlwaysOn -Path SQLSERVER:\SQL\$SqlServerSecName\Default -Force
$SqlServerPrim = New-Object Microsoft.SqlServer.Management.Smo.Server($SqlServerPrimName)
$SqlServerSec = New-Object Microsoft.SqlServer.Management.Smo.Server($SqlServerSecName)
try {
# create the endpoint if it doesn't exist on the primary replica
$EndpointPrim = $SqlServerPrim.Endpoints |
Where-Object {$_.EndpointType -eq
[Microsoft.SqlServer.Management.Smo.EndpointType]::DatabaseMirroring}
if(!$EndpointPrim) {
$EndpointPrim = New-Object Microsoft.SqlServer.Management.Smo.Endpoint($SqlServerPrim,
$HadrEndpointName)
$EndpointSec.Create()
$EndpointSec.Start()
}
# on the secondary replica, join the replica to the AG, and join the database to the AG
$SqlServerSec.JoinAvailabilityGroup($SqlAgName)
}
catch {
Write-Error $_.Exception
}
4. Now you would need to create a new Variable.xml that would be used to run another pass of
Installer.ps1. The Variable.xml would look something like the following. Note the use of the
Existing=”True” statement in the VMM database server role. That tells PDT that the database server is
already installed, and just to create the VMM database on the existing server. The permissions for that
server must match what is specified in the variable.xml file.
5. After the second pass of Installer.ps1 is complete, then you would just need to add the newly created
VMM database to the Availability group.
###################################
# Create VMM DKM container
###################################
Write-Host "Create AD container for VMM"
New-ADObject -Name 'VMMDKM' -Type Container -Path 'DC=contoso,DC=com' -ErrorAction SilentlyContinue
$VMMSA = (Get-ADUser -Identity 'vmm-SVC').SID
$acl = Get-Acl -Path "AD:CN=VMMDKM,DC=contoso,DC=com"
$nullGuid = New-Object Guid 00000000-0000-0000-0000-000000000000
$ace = New-Object System.DirectoryServices.ActiveDirectoryAccessRule $VMMSA,"GenericAll","Allow","All",$nullGuid
$acl.AddAccessRule($ace)
Set-Acl -Path "AD:CN=VMMDKM,DC=contoso,DC=com" -AclObject $acl
###################################
# Create cluster computer accounts
###################################
###################################
# Copy CMTrace for troubleshooting
###################################
New-Item -Path "C:\" -Name "CMTrace" -ItemType Directory
Copy-Item -Path "C:\Temp\CMTrace.exe" -Destination "C:\CMTrace"
###################################
# Section for WAP Websites
###################################
Write-Host "Creating File and Cert Groups"
New-ADGroup -Name "FileShareOwners" -SamAccountName FileShareOwners -GroupCategory Security -GroupScope Global -DisplayName
"FileShareOwners" -Path "OU=Groups,OU=HQ,DC=CONTOSO,DC=com"
New-ADGroup -Name "FileShareUsers" -SamAccountName FileShareUsers -GroupCategory Security -GroupScope Global -DisplayName
"FileShareUsers" -Path "OU=Groups,OU=HQ,DC=CONTOSO,DC=com"
New-ADGroup -Name "CertStoreFSUsers" -SamAccountName CertStoreFSUsers -GroupCategory Security -GroupScope Global -DisplayName
"CertStoreFSUsers" -Path "OU=Groups,OU=HQ,DC=CONTOSO,DC=com"
###################################
# Define the Cluster nodes that are being created other than this node
###################################
$Nodes = @("DB01B")
###################################
# Install failover clustering on All nodes
###################################
$Nodes = @("DB01A","DB01B")
$Jobs = @()
Write-Host "Installing failover clustering"
$Nodes | ForEach-Object {
$Jobs += Start-Job -Name $_ -ScriptBlock {
$Computer = $args[0]
Invoke-Command -ComputerName $Computer -ScriptBlock {
$Computer = $args[0]
Install-WindowsFeature Failover-Clustering -ComputerName $Computer -IncludeManagementTools
} -ArgumentList @($Computer)
} -ArgumentList @($_)
}
$Jobs | ForEach-Object {
While ((Get-Job -Id $_.Id).State -eq "Running") {Start-Sleep 1}
}
# Create cluster
# Assumption: There are no Pagefile disk or additional non-shared data disks connected to the nodes
$NumberOfSharedVHDX = 17
for ($i=1; $i -le $NumberOfSharedVHDX; $i++) {
$Drive = get-disk -Number $i | Get-partition
(Get-ClusterAvailableDisk | ?{ $_.Number -eq $i} | Add-ClusterDisk).Name = $Drive.DriveLetter + "-Drive"
Write-Host "Adding Drive $Drive.DriveLetter-Drive"
}
Set-ClusterQuorum -NodeAndDiskMajority "D-Drive"
###################################
# Copy Log for troubleshooting
###################################
New-Item -Path "C:\" -Name "Logs" -ItemType Directory
Copy-Item -Path "C:\Temp\DBCluster.txt" -Destination "C:\Logs"
# Cleanup
Get-ChildItem -Path 'C:\Temp' -Recurse | Where-Object {$_.Name -ne "Setup.bat"} | ForEach-Object {$_.Attributes = 'Normal'}
Get-ChildItem -Path 'C:\Temp' -Recurse -Hidden | Where-Object {$_.Name -ne "Setup.bat"} | ForEach-Object {$_.Attributes =
'Normal'}
Get-ChildItem -Path 'C:\Temp' | Where-Object {$_.Name -ne "Setup.bat"} | Remove-Item -Recurse
###################################
# Setup file server
###################################
###################################
# Create Share for SQL Server SMB Storage
###################################
start-transcript -path C:\Temp\FS01.txt -noclobber
# Cleanup
Get-ChildItem -Path 'C:\Temp' -Recurse | Where-Object {$_.Name -ne "Setup.bat"} | ForEach-Object {$_.Attributes = 'Normal'}
Get-ChildItem -Path 'C:\Temp' -Recurse -Hidden | Where-Object {$_.Name -ne "Setup.bat"} | ForEach-Object {$_.Attributes =
'Normal'}
Get-ChildItem -Path 'C:\Temp' | Where-Object {$_.Name -ne "Setup.bat"} | Remove-Item -Recurse
###################################
# Setup PKI server
###################################
If ((Get-ExecutionPolicy) -eq 'Restricted') {Set-ExecutionPolicy RemoteSigned -Force}
$Nodes = @("VMM01A","VMM01B")
# Create cluster
Stop-transcript
# Cleanup
Get-ChildItem -Path 'C:\Temp' -Recurse | Where-Object {$_.Name -ne "Setup.bat"} | ForEach-Object {$_.Attributes = 'Normal'}
Get-ChildItem -Path 'C:\Temp' -Recurse -Hidden | Where-Object {$_.Name -ne "Setup.bat"} | ForEach-Object {$_.Attributes =
'Normal'}
Get-ChildItem -Path 'C:\Temp' | Where-Object {$_.Name -ne "Setup.bat"} | Remove-Item -Recurse
###################################
# Setup WSUS Server
###################################
$WSUS2012R2ContentFolder="WSUS"
$WSUS2012R2ContentDrive="E:"
$WSUS2012R2SyncFrom="SyncFromMU"
$wsus = Get-WSUSServer
$wsusConfig = $wsus.GetConfiguration()
Set-WsusServerSynchronization –syncfromMU
$wsusConfig.AllUpdateLanguagesEnabled = $false
$wsusConfig.SetEnabledUpdateLanguages('en')
$wsusConfig.Save()
The following PowerShell provides an example of registering a SQL VM in the WAP Portal. Assumptions
Once you have the SQL Services for Tenant added to the WAP server, it can be added to plans and users
can subscribe to those plans.
The Product group has developed a tool to enable customers and partners to create and edit VM Role
Gallery Items definitions.
The following How-To Video will help understand how to use the tool
http://www.youtube.com/playlist?list=PLjbVGPEELuaSuM-0eh9GO05zDFUudydJ1
To quickly leverage the existing sample Gallery Items, you need to do the following:
Parameter Description
VHD VHD that will be associated with the Gallery item and will need the tags to be
applied
Path The subfolder under the C:\Gallery Resources folder that contains the gallery
item to import
Note
The Values for Family, Release, and Tag values are specified in a document provided with the
sample Gallery item folder.
The following example table defines the import values needed for two of the sample Gallery items.
Note
Once you have the CSV values entered, save the file as GalleryItems.csv
Note
The only way to import an extension package file into VMM is via PowerShell
#
# Register Gallery Extension Packages into VMM
#
# Establish Variables
$SPFHost = "SPF01"
#
# Import the Gallery Items and start the registration process
#
import-csv GalleryItems.csv | ForEach-Object {
#
# Import the Resource Extension package In the VMM Server if the package exists
#
Write-Host "Registered.."
} Else
{
# No Package to import
#
# Configure the Family, release, and Tags for the VHDx that you will be using for the
Gallery Item
#
Write-Host "Configuring VHD...$_.VHD"
Write-Host ".."
$tags = $myVHD.Tag
21.3.1.4 Import the Definition Packages into Service Management Admin Portal
The following PowerShell script leverages the GalleryItems.CSV input file to define the Gallery Items that
need to be imported. For this script the CSV is used to identify the Gallery Definition package file
information so that it can import the definition file into the WAP Admin portal.
Note
It is possible to import the definition package via the WAP Admin portal GUI also
#
# Read in the CSV and import the resource definition packages on the SPF server
#
#
# Import the Gallery Items and start the registration process
#
#
# Import the Resource Definition package In the SPF Server if the package exists
#
Write-Host "Imported.."
} Else
{
Write-Host "Import Failed.."
}
} Else
{
# No Package to import
Write-Host "No Definition Package to Register"
Write-Host ".."
}