vagrant-uplift 0.2.1902.18
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/bin/console +13 -0
- data/bin/setup +8 -0
- data/lib/scripts/vagrant/uplift.vagrant.core/uplift.fix-second-network.ps1 +59 -0
- data/lib/scripts/vagrant/uplift.vagrant.dc12/dc.dsc.ps1 +128 -0
- data/lib/scripts/vagrant/uplift.vagrant.dc12/dc.replica.dsc.ps1 +117 -0
- data/lib/scripts/vagrant/uplift.vagrant.dc12/dc.users.dsc.ps1 +147 -0
- data/lib/scripts/vagrant/uplift.vagrant.dc12/tests/dc.dsc.Tests.ps1 +165 -0
- data/lib/scripts/vagrant/uplift.vagrant.dcjoin/dc.join.dsc.ps1 +125 -0
- data/lib/scripts/vagrant/uplift.vagrant.dcjoin/dc.join.hostname.ps1 +13 -0
- data/lib/scripts/vagrant/uplift.vagrant.dcjoin/tests/dc.join.dsc.Tests.ps1 +12 -0
- data/lib/scripts/vagrant/uplift.vagrant.sharepoint/shared/sp.helpers.ps1 +155 -0
- data/lib/scripts/vagrant/uplift.vagrant.sharepoint/sp2013.dsc.ps1 +248 -0
- data/lib/scripts/vagrant/uplift.vagrant.sharepoint/sp2013.post_setup.dsc.ps1 +117 -0
- data/lib/scripts/vagrant/uplift.vagrant.sharepoint/sp2016.dsc.ps1 +246 -0
- data/lib/scripts/vagrant/uplift.vagrant.sharepoint/sp2016.farm-only.dsc.ps1 +281 -0
- data/lib/scripts/vagrant/uplift.vagrant.sharepoint/sp2016.info.ps1 +36 -0
- data/lib/scripts/vagrant/uplift.vagrant.sharepoint/sp2016.post_setup.dsc.ps1 +125 -0
- data/lib/scripts/vagrant/uplift.vagrant.sharepoint/sp2016.pre_setup1.dsc.ps1 +28 -0
- data/lib/scripts/vagrant/uplift.vagrant.sharepoint/sp2016.pre_setup2.dsc.ps1 +75 -0
- data/lib/scripts/vagrant/uplift.vagrant.sharepoint/tests/sp2013.dsc.wfe.Tests.ps1 +68 -0
- data/lib/scripts/vagrant/uplift.vagrant.sharepoint/tests/sp2016.dsc.wfe.Tests.ps1 +68 -0
- data/lib/scripts/vagrant/uplift.vagrant.sql12/sql.complete.dsc.ps1 +186 -0
- data/lib/scripts/vagrant/uplift.vagrant.sql12/sql.dsc.ps1 +66 -0
- data/lib/scripts/vagrant/uplift.vagrant.sql12/sql.optimize.dsc.ps1 +50 -0
- data/lib/scripts/vagrant/uplift.vagrant.sql12/sql.prepare.dsc.ps1 +60 -0
- data/lib/scripts/vagrant/uplift.vagrant.sql12/tests/sql.dsc.Tests.ps1 +23 -0
- data/lib/scripts/vagrant/uplift.vagrant.sql12/tests/sql12.dsc.Tests.ps1 +45 -0
- data/lib/scripts/vagrant/uplift.vagrant.sql12/tests/sql16.dsc.Tests.ps1 +22 -0
- data/lib/scripts/vagrant/uplift.vagrant.visual_studio13/tests/vs13.dsc.Tests.ps1 +61 -0
- data/lib/scripts/vagrant/uplift.vagrant.visual_studio13/vs13.dsc.post_deploy.ps1 +32 -0
- data/lib/scripts/vagrant/uplift.vagrant.visual_studio13/vs13.dsc.ps1 +69 -0
- data/lib/scripts/vagrant/uplift.vagrant.visual_studio17/tests/vs17.dsc.Tests.ps1 +61 -0
- data/lib/scripts/vagrant/uplift.vagrant.visual_studio17/vs17.dsc.post_deploy.ps1 +34 -0
- data/lib/scripts/vagrant/uplift.vagrant.visual_studio17/vs17.dsc.ps1 +134 -0
- data/lib/scripts/vagrant/uplift.vagrant.win12soe/soe.dsc.ps1 +115 -0
- data/lib/scripts/vagrant/uplift.vagrant.win12soe/soe.shortcuts.dsc.ps1 +41 -0
- data/lib/scripts/vagrant/uplift.vagrant.win12soe/tests/soe.dsc.modules.Tests.ps1 +71 -0
- data/lib/scripts/vagrant/uplift.vagrant.win12soe/tests/soe.dsc.os.Tests.ps1 +89 -0
- data/lib/vagrant-uplift.rb +8 -0
- data/lib/vagrant-uplift/config_builder.rb +819 -0
- data/lib/vagrant-uplift/log.rb +146 -0
- data/lib/vagrant-uplift/plugin-vagrant-uplift-checkpoint.rb +41 -0
- data/lib/vagrant-uplift/plugin.rb +16 -0
- data/lib/vagrant-uplift/version.rb +10 -0
- metadata +131 -0
@@ -0,0 +1,75 @@
|
|
1
|
+
# fail on errors and include uplift helpers
|
2
|
+
$ErrorActionPreference = "Stop"
|
3
|
+
|
4
|
+
Import-Module Uplift.Core
|
5
|
+
|
6
|
+
# include shared helpers from uplift.vagrant.sharepoint handler
|
7
|
+
. "c:/windows/temp/uplift.vagrant.sharepoint/shared/sp.helpers.ps1"
|
8
|
+
|
9
|
+
Write-UpliftMessage "Running SharePoint pre-setup2 tuning..."
|
10
|
+
Write-UpliftEnv
|
11
|
+
|
12
|
+
Write-UpliftMessage "Running: Install-WindowsFeature Web-Server -IncludeAllSubFeature"
|
13
|
+
Install-WindowsFeature Web-Server -IncludeAllSubFeature
|
14
|
+
|
15
|
+
# Missed NET-WCF-HTTP-Activation45 in SharePoint 2016 images #55
|
16
|
+
# https://github.com/SubPointSolutions/uplift/issues/55
|
17
|
+
Write-UpliftMessage "Running: Install-WindowsFeature NET-WCF-HTTP-Activation45"
|
18
|
+
Install-WindowsFeature NET-WCF-HTTP-Activation45 | Out-Null
|
19
|
+
|
20
|
+
Configuration Install_SharePointFarmPreSetupTuning
|
21
|
+
{
|
22
|
+
Import-DscResource -ModuleName PSDesiredStateConfiguration
|
23
|
+
Import-DscResource -ModuleName SharePointDsc
|
24
|
+
Import-DscResource -ModuleName xWebAdministration
|
25
|
+
|
26
|
+
Node localhost {
|
27
|
+
|
28
|
+
LocalConfigurationManager
|
29
|
+
{
|
30
|
+
RebootNodeIfNeeded = $false
|
31
|
+
}
|
32
|
+
|
33
|
+
# ensuring that required services are up before running SharePoint farm creation
|
34
|
+
Service W3SVC
|
35
|
+
{
|
36
|
+
Name = "W3SVC"
|
37
|
+
StartupType = "Automatic"
|
38
|
+
State = "Running"
|
39
|
+
}
|
40
|
+
|
41
|
+
Service IISADMIN
|
42
|
+
{
|
43
|
+
DependsOn = "[Service]W3SVC"
|
44
|
+
|
45
|
+
Name = "IISADMIN"
|
46
|
+
StartupType = "Automatic"
|
47
|
+
State = "Running"
|
48
|
+
}
|
49
|
+
|
50
|
+
WindowsFeature NETWCFHTTPActivation45
|
51
|
+
{
|
52
|
+
Ensure = "Present"
|
53
|
+
Name = "NET-WCF-HTTP-Activation45"
|
54
|
+
}
|
55
|
+
}
|
56
|
+
}
|
57
|
+
|
58
|
+
$config = @{
|
59
|
+
AllNodes = @(
|
60
|
+
@{
|
61
|
+
NodeName = 'localhost'
|
62
|
+
|
63
|
+
PSDscAllowDomainUser = $true
|
64
|
+
PSDscAllowPlainTextPassword = $true
|
65
|
+
}
|
66
|
+
)
|
67
|
+
}
|
68
|
+
|
69
|
+
$configuration = Get-Command Install_SharePointFarmPreSetupTuning
|
70
|
+
Start-UpliftDSCConfiguration $configuration $config
|
71
|
+
|
72
|
+
Write-UpliftMessage "Ensuring IIS services are up"
|
73
|
+
Invoke-UpliftIISReset
|
74
|
+
|
75
|
+
exit 0
|
@@ -0,0 +1,68 @@
|
|
1
|
+
Describe 'SharePoint 2013' {
|
2
|
+
|
3
|
+
function Is-Service-Running($serviceName)
|
4
|
+
{
|
5
|
+
(get-service $serviceName).Status | Should BeLike "Running"
|
6
|
+
}
|
7
|
+
|
8
|
+
Context "General Services" {
|
9
|
+
|
10
|
+
It 'World Wide Web Publishing Service' {
|
11
|
+
Is-Service-Running "World Wide Web Publishing Service"
|
12
|
+
}
|
13
|
+
|
14
|
+
}
|
15
|
+
|
16
|
+
Context "SharePoint Services" {
|
17
|
+
|
18
|
+
It 'SharePoint Administration' {
|
19
|
+
Is-Service-Running "SharePoint Administration"
|
20
|
+
}
|
21
|
+
|
22
|
+
It 'SharePoint Search Host Controller' {
|
23
|
+
Is-Service-Running "SharePoint Search Host Controller"
|
24
|
+
}
|
25
|
+
|
26
|
+
It 'SharePoint Server Search 15' {
|
27
|
+
Is-Service-Running "SharePoint Server Search 15"
|
28
|
+
}
|
29
|
+
|
30
|
+
It 'SharePoint Timer Service' {
|
31
|
+
Is-Service-Running "SharePoint Timer Service"
|
32
|
+
}
|
33
|
+
|
34
|
+
It 'SharePoint Tracing Service' {
|
35
|
+
Is-Service-Running "SharePoint Tracing Service"
|
36
|
+
}
|
37
|
+
|
38
|
+
It 'SharePoint User Code Host' {
|
39
|
+
Is-Service-Running "SharePoint User Code Host"
|
40
|
+
}
|
41
|
+
|
42
|
+
}
|
43
|
+
|
44
|
+
function IIS-AppPool-Running($appPoolName) {
|
45
|
+
Import-Module WebAdministration
|
46
|
+
(
|
47
|
+
(get-CHildItem "IIS:\\AppPools") `
|
48
|
+
| Where-Object { $_.Name -eq $appPoolName }
|
49
|
+
).State | Should BeLike "Started"
|
50
|
+
}
|
51
|
+
|
52
|
+
Context "SharePoint IIS App Pools" {
|
53
|
+
|
54
|
+
It 'SharePoint Web Services Root' {
|
55
|
+
IIS-AppPool-Running "SharePoint Web Services Root"
|
56
|
+
}
|
57
|
+
|
58
|
+
It 'SharePoint Central Administration v4' {
|
59
|
+
IIS-AppPool-Running "SharePoint Central Administration v4"
|
60
|
+
}
|
61
|
+
|
62
|
+
It 'SecurityTokenServiceApplicationPool' {
|
63
|
+
IIS-AppPool-Running "SecurityTokenServiceApplicationPool"
|
64
|
+
}
|
65
|
+
|
66
|
+
}
|
67
|
+
|
68
|
+
}
|
@@ -0,0 +1,68 @@
|
|
1
|
+
Describe 'SharePoint 2016' {
|
2
|
+
|
3
|
+
function Is-Service-Running($serviceName)
|
4
|
+
{
|
5
|
+
(get-service $serviceName).Status | Should BeLike "Running"
|
6
|
+
}
|
7
|
+
|
8
|
+
Context "General Services" {
|
9
|
+
|
10
|
+
It 'World Wide Web Publishing Service' {
|
11
|
+
Is-Service-Running "World Wide Web Publishing Service"
|
12
|
+
}
|
13
|
+
|
14
|
+
}
|
15
|
+
|
16
|
+
Context "SharePoint Services" {
|
17
|
+
|
18
|
+
It 'SharePoint Administration' {
|
19
|
+
Is-Service-Running "SharePoint Administration"
|
20
|
+
}
|
21
|
+
|
22
|
+
It 'SharePoint Search Host Controller' {
|
23
|
+
Is-Service-Running "SharePoint Search Host Controller"
|
24
|
+
}
|
25
|
+
|
26
|
+
It 'SharePoint Server Search 16' {
|
27
|
+
Is-Service-Running "SharePoint Server Search 16"
|
28
|
+
}
|
29
|
+
|
30
|
+
It 'SharePoint Timer Service' {
|
31
|
+
Is-Service-Running "SharePoint Timer Service"
|
32
|
+
}
|
33
|
+
|
34
|
+
It 'SharePoint Tracing Service' {
|
35
|
+
Is-Service-Running "SharePoint Tracing Service"
|
36
|
+
}
|
37
|
+
|
38
|
+
It 'SharePoint User Code Host' {
|
39
|
+
Is-Service-Running "SharePoint User Code Host"
|
40
|
+
}
|
41
|
+
|
42
|
+
}
|
43
|
+
|
44
|
+
function IIS-AppPool-Running($appPoolName) {
|
45
|
+
Import-Module WebAdministration
|
46
|
+
(
|
47
|
+
(get-CHildItem "IIS:\\AppPools") `
|
48
|
+
| Where-Object { $_.Name -eq $appPoolName }
|
49
|
+
).State | Should BeLike "Started"
|
50
|
+
}
|
51
|
+
|
52
|
+
Context "SharePoint IIS App Pools" {
|
53
|
+
|
54
|
+
It 'SharePoint Web Services Root' {
|
55
|
+
IIS-AppPool-Running "SharePoint Web Services Root"
|
56
|
+
}
|
57
|
+
|
58
|
+
It 'SharePoint Central Administration v4' {
|
59
|
+
IIS-AppPool-Running "SharePoint Central Administration v4"
|
60
|
+
}
|
61
|
+
|
62
|
+
It 'SecurityTokenServiceApplicationPool' {
|
63
|
+
IIS-AppPool-Running "SecurityTokenServiceApplicationPool"
|
64
|
+
}
|
65
|
+
|
66
|
+
}
|
67
|
+
|
68
|
+
}
|
@@ -0,0 +1,186 @@
|
|
1
|
+
|
2
|
+
Import-Module Uplift.Core
|
3
|
+
|
4
|
+
try {
|
5
|
+
|
6
|
+
$exitCode = 0;
|
7
|
+
|
8
|
+
do {
|
9
|
+
Write-UpliftMessage "Executing CompleteImage action..."
|
10
|
+
|
11
|
+
# SQL SERVER – How to Get List of SQL Server Instances Installed on a Machine?
|
12
|
+
# https://blog.sqlauthority.com/2016/11/12/sql-server-get-list-sql-server-instances-installed-machine/
|
13
|
+
$service = Get-Service | Where-Object{ $_.DisplayName -like "SQL Server (*" }
|
14
|
+
$shoudComplete = ($null -eq $service)
|
15
|
+
|
16
|
+
if($shoudComplete -eq $False) {
|
17
|
+
Write-UpliftMessage "[+] server was clready completed!"
|
18
|
+
break;
|
19
|
+
} else {
|
20
|
+
Write-UpliftMessage "[~] server needs completion"
|
21
|
+
}
|
22
|
+
|
23
|
+
$sqlDir = "C:\Program Files\Microsoft SQL Server\130\Setup Bootstrap\SQLServer2016\"
|
24
|
+
|
25
|
+
$syAdmnUsers = """vagrant"""
|
26
|
+
|
27
|
+
if((Get-CimInstance -Class Win32_ComputerSystem).PartOfDomain) {
|
28
|
+
$domainName = [environment]::UserDomainName
|
29
|
+
$syAdmnUsers += " ""$domainName\vagrant"""
|
30
|
+
|
31
|
+
$dmName = (Get-CimInstance Win32_ComputerSystem).Domain.Split(".")[0]
|
32
|
+
|
33
|
+
$syAdmnUsers += " ""$dmName\vagrant"""
|
34
|
+
|
35
|
+
Write-UpliftMessage "[!] domain joined vm detected, WILL ADD $domainName\vagrant user as SQLSYSADMINACCOUNTS"
|
36
|
+
} else {
|
37
|
+
Write-UpliftMessage "[!] standalone vm detected, WILL NOT add domain vagrant user to SQLSYSADMINACCOUNTS"
|
38
|
+
}
|
39
|
+
|
40
|
+
Write-UpliftMessage "syAdmnUsers: $syAdmnUsers"
|
41
|
+
|
42
|
+
$arguments = [string]::Join(" ", @(
|
43
|
+
"/q",
|
44
|
+
"/ACTION=CompleteImage",
|
45
|
+
"/INSTANCENAME=MSSQLSERVER",
|
46
|
+
"/INSTANCEID=MSSQLSERVER",
|
47
|
+
"/SQLSVCACCOUNT=""vagrant"" ",
|
48
|
+
"/SQLSVCPASSWORD=""vagrant"" ",
|
49
|
+
"/SQLSYSADMINACCOUNTS=$syAdmnUsers ",
|
50
|
+
"/AGTSVCACCOUNT=""NT AUTHORITY\Network Service"" ",
|
51
|
+
"/IACCEPTSQLSERVERLICENSETERMS"
|
52
|
+
))
|
53
|
+
|
54
|
+
Write-UpliftMessage "SQL DIR : $sqlDir"
|
55
|
+
Write-UpliftMessage "SQL ARGS: $arguments"
|
56
|
+
|
57
|
+
$pinfo = New-Object System.Diagnostics.ProcessStartInfo
|
58
|
+
$pinfo.FileName = "$sqlDir/setup.exe"
|
59
|
+
|
60
|
+
$pinfo.RedirectStandardError = $true
|
61
|
+
$pinfo.RedirectStandardOutput = $true
|
62
|
+
|
63
|
+
$pinfo.UseShellExecute = $false
|
64
|
+
|
65
|
+
$pinfo.Arguments = $arguments
|
66
|
+
|
67
|
+
$p = New-Object System.Diagnostics.Process
|
68
|
+
|
69
|
+
$p.StartInfo = $pinfo
|
70
|
+
|
71
|
+
Write-UpliftMessage "Started process....."
|
72
|
+
$p.Start() | Out-Null
|
73
|
+
|
74
|
+
Write-UpliftMessage "Waiting for exit..."
|
75
|
+
$p.WaitForExit()
|
76
|
+
|
77
|
+
Write-UpliftMessage "Finished running PrepareImage"
|
78
|
+
|
79
|
+
#Write-UpliftMessage $p
|
80
|
+
Write-UpliftMessage "Res ExitCode: $($p.ExitCode)"
|
81
|
+
|
82
|
+
$res = $p.ExitCode
|
83
|
+
$exitCode = $p.ExitCode
|
84
|
+
|
85
|
+
} while($res -eq $null -or $res -eq -2068774911 )
|
86
|
+
|
87
|
+
# completion
|
88
|
+
# Res ExitCode: -2147467261
|
89
|
+
# Parameter name: instanceName
|
90
|
+
|
91
|
+
# -2061893563
|
92
|
+
# The SQL Server service account login or password is not valid. Use SQL Server Configuration Manager to update the service account.
|
93
|
+
# SQLSVCACCOUNT / SQLSVCPASSWORD are wrong
|
94
|
+
|
95
|
+
# 2068774911
|
96
|
+
# There was an error generating the XML document.
|
97
|
+
# (01) 2018-12-29 14:55:25 Slp: Error: Action "Microsoft.SqlServer.Configuration.SetupExtension.FinalCalculateSettingsAction" threw an exception during execution.
|
98
|
+
# (01) 2018-12-29 14:55:25 Slp: Microsoft.SqlServer.Setup.Chainer.Workflow.ActionExecutionException: There was an error generating the XML document. ---> Microsoft.SqlServer.Chainer.Infrastructure.ChainerInfrastructureException: There was an error generating the XML document. ---> System.InvalidOperationException: There was an error generating the XML document. ---> System.Security.Cryptography.CryptographicException: Access is denied.
|
99
|
+
|
100
|
+
# mostlikely, we need to wait until TrustedInstaller process is done
|
101
|
+
# post-sysprep or start action
|
102
|
+
# then run complete action again
|
103
|
+
|
104
|
+
# 2068774911 - !!! finally, tasks shuld be run in elevated mode!!!!
|
105
|
+
|
106
|
+
# -2068643838
|
107
|
+
# conflict of re-installing
|
108
|
+
# mostlikely, we already run complete action
|
109
|
+
|
110
|
+
# -2067919934
|
111
|
+
# someting else is being installed! like, othe MIS/MSU or MSSQL installer
|
112
|
+
# also, reboot might be requred
|
113
|
+
# Microsoft.SqlServer.Setup.Chainer.Workflow.ActionExecutionException: A computer restart is required. You must restart this computer before installing SQL Server
|
114
|
+
|
115
|
+
# -2067529717
|
116
|
+
# ????
|
117
|
+
|
118
|
+
|
119
|
+
# ---
|
120
|
+
|
121
|
+
|
122
|
+
# Res ExitCode: 0 - all good
|
123
|
+
|
124
|
+
# Res ExitCode: -2067529717 - process already running
|
125
|
+
|
126
|
+
# Res ExitCode: -2022834173 - updates cannot connect to remote server
|
127
|
+
# Setup encountered a failure while running job UpdateResult.
|
128
|
+
# mostlikely, case we disabled them via registry
|
129
|
+
|
130
|
+
# Error result: -2067921930
|
131
|
+
# mostlikely, This computer does not have the Microsoft .NET Framework 3.5 Service Pack 1 installed.
|
132
|
+
# If the operating system is Windows Server 2008, download and install Microsoft .NET Framework 3.5 SP1 from http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=22
|
133
|
+
# https://social.msdn.microsoft.com/Forums/en-US/8db6ff15-b5bc-4e3a-ab33-43e26ffab925/net-35-in-a-container-aiming-to-install-sql-server
|
134
|
+
|
135
|
+
# logs under
|
136
|
+
# C:\Program Files\Microsoft SQL Server\120\Setup Bootstrap\Log
|
137
|
+
# https://www.buyplm.com/install-guide/pdxpert-plm-software-installation-advanced-server-sql-log-files.aspx
|
138
|
+
|
139
|
+
# C:\Program Files\Microsoft SQL Server\130\Setup Bootstrap\Log
|
140
|
+
|
141
|
+
# post setup
|
142
|
+
if($exitCode -eq 0) {
|
143
|
+
|
144
|
+
# start SQL server agent service
|
145
|
+
Configuration SqlDSC
|
146
|
+
{
|
147
|
+
Import-DscResource -ModuleName PSDesiredStateConfiguration
|
148
|
+
|
149
|
+
Node localhost {
|
150
|
+
|
151
|
+
Service MSSQLSERVER {
|
152
|
+
Ensure = "Present"
|
153
|
+
Name = "MSSQLSERVER"
|
154
|
+
StartupType = "Automatic"
|
155
|
+
State = "Running"
|
156
|
+
}
|
157
|
+
|
158
|
+
Service SQLSERVERAGENT {
|
159
|
+
Ensure = "Present"
|
160
|
+
Name = "SQLSERVERAGENT"
|
161
|
+
StartupType = "Automatic"
|
162
|
+
State = "Running"
|
163
|
+
}
|
164
|
+
|
165
|
+
}
|
166
|
+
}
|
167
|
+
|
168
|
+
$configuration = Get-Command SqlDSC
|
169
|
+
Start-UpliftDSCConfiguration $configuration -ExpectInDesiredState $True
|
170
|
+
}
|
171
|
+
|
172
|
+
# already installed
|
173
|
+
# if ($p.ExitCode -eq -2068643838) {
|
174
|
+
# exit 0
|
175
|
+
# }
|
176
|
+
|
177
|
+
exit $exitCode
|
178
|
+
} catch {
|
179
|
+
|
180
|
+
Write-UpliftMessage "ERROR!"
|
181
|
+
Write-UpliftMessage $_
|
182
|
+
|
183
|
+
exit 1
|
184
|
+
}
|
185
|
+
|
186
|
+
exit 1
|
@@ -0,0 +1,66 @@
|
|
1
|
+
# fail on errors and include uplift helpers
|
2
|
+
$ErrorActionPreference = "Stop"
|
3
|
+
|
4
|
+
Import-Module Uplift.Core
|
5
|
+
|
6
|
+
Write-UpliftMessage "Installing SQL Server..."
|
7
|
+
Write-UpliftEnv
|
8
|
+
|
9
|
+
$binSourcePath = Get-UpliftEnvVariable "UPLF_SQL_BIN_PATH"
|
10
|
+
$instanceName = Get-UpliftEnvVariable "UPLF_SQL_INSTANCE_NAME"
|
11
|
+
$instanceFeatures = Get-UpliftEnvVariable "UPLF_SQL_INSTANCE_FEATURES"
|
12
|
+
$sqlSysAdminAccounts = (Get-UpliftEnvVariable "UPLF_SQL_SYS_ADMIN_ACCOUNTS").Split(',')
|
13
|
+
|
14
|
+
Configuration Install_SQL
|
15
|
+
{
|
16
|
+
Import-DscResource -ModuleName 'xSQLServer'
|
17
|
+
Import-DscResource -ModuleName 'PSDesiredStateConfiguration'
|
18
|
+
|
19
|
+
Node localhost {
|
20
|
+
|
21
|
+
LocalConfigurationManager
|
22
|
+
{
|
23
|
+
RebootNodeIfNeeded = $false
|
24
|
+
}
|
25
|
+
|
26
|
+
WindowsFeature "NET-Framework-Core"
|
27
|
+
{
|
28
|
+
Ensure = "Present"
|
29
|
+
Name = "NET-Framework-Core"
|
30
|
+
}
|
31
|
+
|
32
|
+
xSqlServerSetup "SQL"
|
33
|
+
{
|
34
|
+
DependsOn = "[WindowsFeature]NET-Framework-Core"
|
35
|
+
SourcePath = $Node.BinSourcePath
|
36
|
+
InstanceName = $Node.InstanceName
|
37
|
+
Features = $Node.InstanceFeatures
|
38
|
+
SQLSysAdminAccounts = $Node.SqlSysAdminAccounts
|
39
|
+
}
|
40
|
+
}
|
41
|
+
|
42
|
+
}
|
43
|
+
|
44
|
+
$config = @{
|
45
|
+
AllNodes = @(
|
46
|
+
@{
|
47
|
+
NodeName = 'localhost'
|
48
|
+
PSDscAllowPlainTextPassword = $true
|
49
|
+
|
50
|
+
RetryCount = 10
|
51
|
+
RetryIntervalSec = 30
|
52
|
+
|
53
|
+
BinSourcePath = $binSourcePath
|
54
|
+
|
55
|
+
InstanceName = $instanceName
|
56
|
+
InstanceFeatures = $instanceFeatures
|
57
|
+
|
58
|
+
SqlSysAdminAccounts = $sqlSysAdminAccounts
|
59
|
+
}
|
60
|
+
)
|
61
|
+
}
|
62
|
+
|
63
|
+
$configuration = Get-Command Install_SQL
|
64
|
+
Start-UpliftDSCConfiguration $configuration $config
|
65
|
+
|
66
|
+
exit 0
|