DSCResources/STDataTier/STDataTier.schema.psm1
configuration STDataTier { param ( [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [String]$Ensure, [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [String]$SqlServer, [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [String]$SqlServerVersion, [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [String]$DeploymentPath, [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [hashtable]$configLogin, [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [hashtable]$tradeLogin ) Import-DscResource -module xDatabase Import-DscResource -module xNetworking Service SQLService { Name = "MSSQLSERVER" StartupType = "Automatic" State = "Running" } xFirewall Firewall { Name = "SqlServerPort" Ensure = "Present" DisplayName = "SQL Port - 1433" Access = "Allow" State = "Enabled" Profile = "Any" Direction = "Inbound" LocalPort = "1433" Protocol = "tcp" DependsOn = "[Service]SQLService" } xDatabaseLogin AdminLogin { Ensure = $Ensure LoginName = $configLogin.login LoginPassword = $configLogin.password SqlAuthType = "Windows" SqlServer = $SqlServer DependsOn = "[Service]SQLService" } xDatabaseLogin TradeLogin { Ensure = $Ensure LoginName = $tradeLogin.login LoginPassword = $tradeLogin.password SqlAuthType = "Windows" SqlServer = $SqlServer DependsOn = "[Service]SQLService" } xDatabase LoggingDb { Ensure = $Ensure DatabaseName = "Logging" SqlServer = $SqlServer SqlServerVersion = $SqlServerVersion SqlAuthType = "Windows" DacPacPath = $DeploymentPath + "\DataBaseArtifacts\DACPAC\Logging.dacpac" DacPacApplicationName = "logging_1" DependsOn = @('[xDatabaseLogin]AdminLogin', '[xDatabaseLogin]TradeLogin', '[Service]SQLService') } xDatabase AzureOrderProcessorRepositoryDb { Ensure = $Ensure DatabaseName = "AzureOrderProcessorRepository" SqlServer = $SqlServer SqlServerVersion = $SqlServerVersion SqlAuthType = "Windows" BacPacPath = $DeploymentPath + "\DataBaseArtifacts\BACPAC\AzureOrderProcessorRepository.bacpac" DependsOn = @('[xDatabaseLogin]AdminLogin', '[xDatabaseLogin]TradeLogin', '[Service]SQLService') } xDatabase AzureBusinessServiceRepositoryDb { Ensure = $Ensure DatabaseName = "AzureBusinessServiceRepository" SqlServer = $SqlServer SqlServerVersion = $SqlServerVersion SqlAuthType = "Windows" BacPacPath = $DeploymentPath + "\DataBaseArtifacts\BACPAC\AzureBusinessServiceRepository.bacpac" DependsOn = @('[xDatabaseLogin]AdminLogin', '[xDatabaseLogin]TradeLogin', '[Service]SQLService') } xDatabase AzureStockTraderAccountDb { Ensure = $Ensure DatabaseName = "AzureStockTraderAccountDB" SqlServer = $SqlServer SqlServerVersion = $SqlServerVersion SqlAuthType = "Windows" BacPacPath = $DeploymentPath + "\DataBaseArtifacts\BACPAC\AzureStockTraderAccountDB.bacpac" DependsOn = @('[xDatabaseLogin]AdminLogin', '[xDatabaseLogin]TradeLogin', '[Service]SQLService') } xDatabase AzureStockTraderQuoteDb { Ensure = $Ensure DatabaseName = "AzureStockTraderQuoteDB" SqlServer = $SqlServer SqlServerVersion = $SqlServerVersion SqlAuthType = "Windows" BacPacPath = $DeploymentPath + "\DataBaseArtifacts\BACPAC\AzureStockTraderQuoteDB.bacpac" DependsOn = @('[xDatabaseLogin]AdminLogin', '[xDatabaseLogin]TradeLogin', '[Service]SQLService') } xDatabase AzureStockTraderWebAppRepositoryDb { Ensure = $Ensure DatabaseName = "AzureStockTraderWebAppRepository" SqlServer = $SqlServer SqlServerVersion = $SqlServerVersion SqlAuthType = "Windows" BacPacPath = $DeploymentPath + "\DataBaseArtifacts\BACPAC\AzureStockTraderWebAppRepository.bacpac" DependsOn = @('[xDatabaseLogin]AdminLogin', '[xDatabaseLogin]TradeLogin', '[Service]SQLService') } xDatabaseServer SqlAuthenticationMode { LoginMode = "Mixed" DependsOn = "[Service]SQLService" } } |