DSCResources/QlikCentral/QlikCentral.schema.psm1
Configuration QlikCentral { Param ( [PSCredential] $SenseService, [PSCredential] $QlikAdmin, [string] $ProductName, [string] $SetupPath, [string] $PatchPath, [string] $ClusterPath = 'C:\QlikShare', [string] $ClusterShareName = 'QlikShare', [string] $ClusterShareHost = ([System.Net.Dns]::GetHostEntry('localhost')).hostname, [PSCredential] $DbSuperUserPassword, [PSCredential] $DbCredential, [PSObject] $License, [string] $Hostname = ([System.Net.Dns]::GetHostEntry('localhost')).hostname, [bool]$ConfigureLogging = $true, [bool]$SetupLocalLoggingDb = $true, [PSCredential]$QLogsWriterPassword, [PSCredential]$QLogsReaderPassword, [string]$QLogsHostname, [int]$QLogsPort = 4432, [bool] $ManageServices = $true, [bool] $ManageFirewall = $true ) Import-DscResource -ModuleName PSDesiredStateConfiguration, xNetworking, xPSDesiredStateConfiguration, xSmbShare if (-Not $DbCredential) { $DbCredential = New-Object System.Management.Automation.PSCredential('qliksenserepository', $SenseService.Password) } if (-Not $DbSuperUserPassword) { $DbSuperUserPassword = $SenseService } if (-Not $QLogsWriterPassword) { $QLogsWriterPassword = $SenseService } if (-Not $QLogsReaderPassword) { $QLogsReaderPassword = $SenseService } if (-Not $QLogsHostname) { $QLogsHostname = $DbHost } if (-Not $QlikAdmin) { $QlikAdmin = $SenseService } File QlikClusterRoot { Type = 'Directory' DestinationPath = $ClusterPath Ensure = 'Present' } xSmbShare QlikClusterShare { Path = $ClusterPath Name = $ClusterShareName FullAccess = $SenseService.UserName Ensure = 'Present' DependsOn = '[File]QlikClusterRoot' } QlikPackage Sense_Setup { Name = $ProductName Setup = $SetupPath Patch = $PatchPath ServiceCredential = $SenseService RootDir = "\\$ClusterShareHost\$ClusterShareName" DbSuperUserPassword = $DbSuperUserPassword DbCredential = $DbCredential CreateCluster = $true InstallLocalDb = $true ConfigureDbListener = $true Hostname = $Hostname ConfigureLogging = $ConfigureLogging SetupLocalLoggingDb = $SetupLocalLoggingDb QLogsWriterPassword = $QLogsWriterPassword QLogsReaderPassword = $QLogsReaderPassword QLogsHostname = $QLogsHostname QLogsPort = $QLogsPort AcceptEula = $true Ensure = 'Present' DependsOn = '[xSmbShare]QlikClusterShare' } if ($ManageServices) { xService QRD { Name = "QlikSenseRepositoryDatabase" State = "Running" DependsOn = "[QlikPackage]Sense_Setup" } xService QRS { Name = "QlikSenseRepositoryService" State = "Running" DependsOn = "[xService]QRD" } xService QPR { Name = "QlikSensePrintingService" State = "Running" DependsOn = "[xService]QRS" } xService QSS { Name = "QlikSenseSchedulerService" State = "Running" DependsOn = "[xService]QRS" } xService QES { Name = "QlikSenseEngineService" State = "Running" DependsOn = "[xService]QRS" } xService QPS { Name = "QlikSenseProxyService" State = "Running" DependsOn = "[xService]QRS" } xService QSD { Name = "QlikSenseServiceDispatcher" State = "Running" DependsOn = "[xService]QRS" } } QlikConnect SenseCentral { Computername = $Hostname Username = $QlikAdmin.UserName DependsOn = if($ManageServices){'[xService]QPS'}else{'[QlikPackage]Sense_Setup'} } QlikLicense SiteLicense { Serial = $License.Serial Control = $License.Control Name = $License.Name Organization = $License.Organization Lef = $License.Lef Ensure = "Present" DependsOn = "[QlikConnect]SenseCentral" } QlikUser RootAdmin { UserID = $QlikAdmin.GetNetworkCredential().UserName UserDirectory = $QlikAdmin.GetNetworkCredential().Domain Name = 'Qlik Sense Root Admin' Roles = 'RootAdmin' Ensure = 'Present' DependsOn = "[QlikLicense]SiteLicense" } if ($ManageFirewall) { xFirewall QRD { Name = "QRD" DisplayName = "Qlik Sense Repository Database" Group = "Qlik Sense" Ensure = "Present" Action = "Allow" Enabled = "True" Profile = ("Domain", "Private", "Public") Direction = "InBound" LocalPort = ("4432") Protocol = "TCP" DependsOn = "[QlikPackage]Sense_Setup" } xFirewall QRS { Name = "QRS" DisplayName = "Qlik Sense Repository Service" Group = "Qlik Sense" Ensure = "Present" Action = "Allow" Enabled = "True" Profile = ("Domain", "Private", "Public") Direction = "InBound" LocalPort = ("4242") Protocol = "TCP" DependsOn = "[QlikPackage]Sense_Setup" } xFirewall QPS { Name = "QPS" DisplayName = "Qlik Sense Proxy HTTPS" Group = "Qlik Sense" Ensure = "Present" Action = "Allow" Enabled = "True" Profile = ("Domain", "Private", "Public") Direction = "InBound" LocalPort = ("443") Protocol = "TCP" DependsOn = "[QlikPackage]Sense_Setup" } xFirewall QPS-Auth { Name = "QPS-Auth" DisplayName = "Qlik Sense Proxy Authentication HTTPS" Group = "Qlik Sense" Ensure = "Present" Action = "Allow" Enabled = "True" Profile = ("Domain", "Private", "Public") Direction = "InBound" LocalPort = ("4244") Protocol = "TCP" DependsOn = "[QlikPackage]Sense_Setup" } } } |