Examples/Resources/SqlRS/4-CompleteWithTwoInstances.ps1
<#
.EXAMPLE This example installs to instances where the first named instance is used for the Reporting Services databases, and the second named instance is used for Reporting Services. After installing the two instances, the configuration performs a default SQL Server Reporting Services configuration. It will initialize SQL Server Reporting Services and register the default Report Server Web Service and Report Manager URLs: Report Manager: http://localhost:80/Reports_RS Report Server Web Service: http://localhost:80/ReportServer_RS #> $ConfigurationData = @{ AllNodes = @( @{ NodeName = 'localhost' # This is values used for the Reporting Services instance. InstanceName = 'RS' Features = 'RS' # This is values used for the Database Engine instance. DatabaseServerName = $env:COMPUTERNAME DatabaseServerInstanceName = 'RSDB' DatabaseServerFeatures = 'SQLENGINE' DatabaseServerCollation = 'Finnish_Swedish_CI_AS' # This is values used for both instances. MediaPath = 'Z:\Sql2016Media' InstallSharedDir = 'C:\Program Files\Microsoft SQL Server' InstallSharedWOWDir = 'C:\Program Files (x86)\Microsoft SQL Server' UpdateEnabled = 'False' BrowserSvcStartupType = 'Automatic' <# NOTE! THIS IS NOT RECOMMENDED IN PRODUCTION. This is added so that AppVeyor automatic tests can pass, otherwise the tests will fail on passwords being in plain text and not being encrypted. Because it is not possible to have a certificate in AppVeyor to encrypt the passwords we need to add the parameter 'PSDscAllowPlainTextPassword'. NOTE! THIS IS NOT RECOMMENDED IN PRODUCTION. #> PSDscAllowPlainTextPassword = $true } ) } Configuration Example { [CmdletBinding()] param ( [Parameter(Mandatory = $true)] [ValidateNotNullOrEmpty()] [System.Management.Automation.PSCredential] $SqlAdministratorCredential, [Parameter(Mandatory = $true)] [ValidateNotNullOrEmpty()] [System.Management.Automation.PSCredential] $SqlInstallCredential, [Parameter(Mandatory = $true)] [ValidateNotNullOrEmpty()] [System.Management.Automation.PSCredential] $SqlServiceCredential, [Parameter(Mandatory = $true)] [ValidateNotNullOrEmpty()] [System.Management.Automation.PSCredential] $SqlAgentServiceCredential, [Parameter(Mandatory = $true)] [ValidateNotNullOrEmpty()] [System.Management.Automation.PSCredential] $ReportingServicesServiceCredential ) Import-DscResource -ModuleName PSDscResources Import-DscResource -ModuleName SqlServerDsc Node localhost { WindowsFeature 'NetFramework45' { Name = 'NET-Framework-45-Core' Ensure = 'Present' } SqlSetup 'InstallDatabaseEngine' { InstanceName = $Node.DatabaseServerInstanceName Features = $Node.DatabaseServerFeatures SourcePath = $Node.MediaPath BrowserSvcStartupType = $Node.BrowserSvcStartupType SQLCollation = $Node.DatabaseServerCollation SQLSvcAccount = $SqlServiceCredential AgtSvcAccount = $SqlAgentServiceCredential InstallSharedDir = $Node.InstallSharedDir InstallSharedWOWDir = $Node.InstallSharedWOWDir UpdateEnabled = $Node.UpdateEnabled SQLSysAdminAccounts = @( $SqlAdministratorCredential.UserName ) PsDscRunAsCredential = $SqlInstallCredential DependsOn = @( '[WindowsFeature]NetFramework45' ) } SqlSetup 'InstallReportingServicesInstance' { InstanceName = $Node.InstanceName Features = $Node.Features SourcePath = $Node.MediaPath BrowserSvcStartupType = $Node.BrowserSvcStartupType RSSvcAccount = $ReportingServicesServiceCredential InstallSharedDir = $Node.InstallSharedDir InstallSharedWOWDir = $Node.InstallSharedWOWDir UpdateEnabled = $Node.UpdateEnabled PsDscRunAsCredential = $SqlInstallCredential DependsOn = @( '[WindowsFeature]NetFramework45' '[SqlSetup]InstallDatabaseEngine' ) } SqlRS 'ConfigureReportingServiceInstance' { # Instance name for the Reporting Services. InstanceName = $Node.InstanceName # Instance for Reporting Services databases. DatabaseServerName = $Node.DatabaseServerName DatabaseInstanceName = $Node.DatabaseServerInstanceName PsDscRunAsCredential = $SqlInstallCredential DependsOn = @( '[SqlSetup]InstallReportingServicesInstance' ) } } } |