vagrant-uplift 0.2.1902.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. checksums.yaml +7 -0
  2. data/bin/console +13 -0
  3. data/bin/setup +8 -0
  4. data/lib/scripts/vagrant/uplift.vagrant.core/uplift.fix-second-network.ps1 +59 -0
  5. data/lib/scripts/vagrant/uplift.vagrant.dc12/dc.dsc.ps1 +128 -0
  6. data/lib/scripts/vagrant/uplift.vagrant.dc12/dc.replica.dsc.ps1 +117 -0
  7. data/lib/scripts/vagrant/uplift.vagrant.dc12/dc.users.dsc.ps1 +147 -0
  8. data/lib/scripts/vagrant/uplift.vagrant.dc12/tests/dc.dsc.Tests.ps1 +165 -0
  9. data/lib/scripts/vagrant/uplift.vagrant.dcjoin/dc.join.dsc.ps1 +125 -0
  10. data/lib/scripts/vagrant/uplift.vagrant.dcjoin/dc.join.hostname.ps1 +13 -0
  11. data/lib/scripts/vagrant/uplift.vagrant.dcjoin/tests/dc.join.dsc.Tests.ps1 +12 -0
  12. data/lib/scripts/vagrant/uplift.vagrant.sharepoint/shared/sp.helpers.ps1 +155 -0
  13. data/lib/scripts/vagrant/uplift.vagrant.sharepoint/sp2013.dsc.ps1 +248 -0
  14. data/lib/scripts/vagrant/uplift.vagrant.sharepoint/sp2013.post_setup.dsc.ps1 +117 -0
  15. data/lib/scripts/vagrant/uplift.vagrant.sharepoint/sp2016.dsc.ps1 +246 -0
  16. data/lib/scripts/vagrant/uplift.vagrant.sharepoint/sp2016.farm-only.dsc.ps1 +281 -0
  17. data/lib/scripts/vagrant/uplift.vagrant.sharepoint/sp2016.info.ps1 +36 -0
  18. data/lib/scripts/vagrant/uplift.vagrant.sharepoint/sp2016.post_setup.dsc.ps1 +125 -0
  19. data/lib/scripts/vagrant/uplift.vagrant.sharepoint/sp2016.pre_setup1.dsc.ps1 +28 -0
  20. data/lib/scripts/vagrant/uplift.vagrant.sharepoint/sp2016.pre_setup2.dsc.ps1 +75 -0
  21. data/lib/scripts/vagrant/uplift.vagrant.sharepoint/tests/sp2013.dsc.wfe.Tests.ps1 +68 -0
  22. data/lib/scripts/vagrant/uplift.vagrant.sharepoint/tests/sp2016.dsc.wfe.Tests.ps1 +68 -0
  23. data/lib/scripts/vagrant/uplift.vagrant.sql12/sql.complete.dsc.ps1 +186 -0
  24. data/lib/scripts/vagrant/uplift.vagrant.sql12/sql.dsc.ps1 +66 -0
  25. data/lib/scripts/vagrant/uplift.vagrant.sql12/sql.optimize.dsc.ps1 +50 -0
  26. data/lib/scripts/vagrant/uplift.vagrant.sql12/sql.prepare.dsc.ps1 +60 -0
  27. data/lib/scripts/vagrant/uplift.vagrant.sql12/tests/sql.dsc.Tests.ps1 +23 -0
  28. data/lib/scripts/vagrant/uplift.vagrant.sql12/tests/sql12.dsc.Tests.ps1 +45 -0
  29. data/lib/scripts/vagrant/uplift.vagrant.sql12/tests/sql16.dsc.Tests.ps1 +22 -0
  30. data/lib/scripts/vagrant/uplift.vagrant.visual_studio13/tests/vs13.dsc.Tests.ps1 +61 -0
  31. data/lib/scripts/vagrant/uplift.vagrant.visual_studio13/vs13.dsc.post_deploy.ps1 +32 -0
  32. data/lib/scripts/vagrant/uplift.vagrant.visual_studio13/vs13.dsc.ps1 +69 -0
  33. data/lib/scripts/vagrant/uplift.vagrant.visual_studio17/tests/vs17.dsc.Tests.ps1 +61 -0
  34. data/lib/scripts/vagrant/uplift.vagrant.visual_studio17/vs17.dsc.post_deploy.ps1 +34 -0
  35. data/lib/scripts/vagrant/uplift.vagrant.visual_studio17/vs17.dsc.ps1 +134 -0
  36. data/lib/scripts/vagrant/uplift.vagrant.win12soe/soe.dsc.ps1 +115 -0
  37. data/lib/scripts/vagrant/uplift.vagrant.win12soe/soe.shortcuts.dsc.ps1 +41 -0
  38. data/lib/scripts/vagrant/uplift.vagrant.win12soe/tests/soe.dsc.modules.Tests.ps1 +71 -0
  39. data/lib/scripts/vagrant/uplift.vagrant.win12soe/tests/soe.dsc.os.Tests.ps1 +89 -0
  40. data/lib/vagrant-uplift.rb +8 -0
  41. data/lib/vagrant-uplift/config_builder.rb +819 -0
  42. data/lib/vagrant-uplift/log.rb +146 -0
  43. data/lib/vagrant-uplift/plugin-vagrant-uplift-checkpoint.rb +41 -0
  44. data/lib/vagrant-uplift/plugin.rb +16 -0
  45. data/lib/vagrant-uplift/version.rb +10 -0
  46. metadata +131 -0
@@ -0,0 +1,50 @@
1
+ # fail on errors and include uplift helpers
2
+ $ErrorActionPreference = "Stop"
3
+
4
+ Import-Module Uplift.Core
5
+
6
+ Write-UpliftMessage "Optimizing SQL Server..."
7
+ Write-UpliftEnv
8
+
9
+ Configuration Optimize_SQL
10
+ {
11
+ Import-DscResource -ModuleName 'xSQLServer'
12
+ Import-DscResource -ModuleName 'PSDesiredStateConfiguration'
13
+
14
+ Node localhost {
15
+
16
+ SqlServerMemory SQLServerMaxMemory
17
+ {
18
+ ServerName = $Node.ServerName
19
+ InstanceName = $Node.InstanceName
20
+
21
+ DynamicAlloc = $false
22
+
23
+ MinMemory = $Node.MinMemory
24
+ MaxMemory = $Node.MaxMemory
25
+ }
26
+ }
27
+ }
28
+
29
+ $config = @{
30
+ AllNodes = @(
31
+ @{
32
+ NodeName = 'localhost'
33
+ PSDscAllowPlainTextPassword = $true
34
+
35
+ RetryCount = 10
36
+ RetryIntervalSec = 30
37
+
38
+ ServerName = Get-UpliftEnvVariable "UPLF_SQL_SERVER_NAME" "" (hostname)
39
+ InstanceName = Get-UpliftEnvVariable "UPLF_SQL_INSTNCE_NAME" "" "MSSQL"
40
+
41
+ MinMemory = Get-UpliftEnvVariable "UPLF_SQL_MIN_MEMORY" "" 1024
42
+ MaxMemory = Get-UpliftEnvVariable "UPLF_SQL_MAX_MEMORY" "" 4096
43
+ }
44
+ )
45
+ }
46
+
47
+ $configuration = Get-Command Optimize_SQL
48
+ Start-UpliftDSCConfiguration $configuration $config
49
+
50
+ exit 0
@@ -0,0 +1,60 @@
1
+ 
2
+ # https://docs.microsoft.com/en-us/sql/database-engine/install-windows/considerations-for-installing-sql-server-using-sysprep?view=sql-server-2017
3
+ # https://docs.microsoft.com/en-us/sql/database-engine/install-windows/install-sql-server-using-sysprep?view=sql-server-2017
4
+ # Setup.exe /q /ACTION=PrepareImage l /FEATURES=SQLEngine /InstanceID =<MYINST> /IACCEPTSQLSERVERLICENSETERMS
5
+
6
+ # SqlSetup: Add support for sysprepped SQL Server. #2
7
+ # https://github.com/PowerShell/SqlServerDsc/issues/2#event-1399718765
8
+
9
+ # fail on errors and include uplift helpers
10
+ $ErrorActionPreference = "Stop"
11
+
12
+ Import-Module Uplift.Core
13
+
14
+ Write-UpliftMessage "Installing SQL Server..."
15
+ Write-UpliftEnv
16
+
17
+ $binSourcePath = Get-UpliftEnvVariable "UPLF_SQL_BIN_PATH"
18
+ $instanceName = Get-UpliftEnvVariable "UPLF_SQL_INSTANCE_NAME"
19
+ $instanceFeatures = Get-UpliftEnvVariable "UPLF_SQL_INSTANCE_FEATURES"
20
+
21
+ Write-UpliftMessage "Executing prepare DSC..."
22
+ Configuration Prepare_SQL
23
+ {
24
+ Import-DscResource -ModuleName xSQLServer
25
+
26
+ Node localhost {
27
+
28
+ LocalConfigurationManager
29
+ {
30
+ RebootNodeIfNeeded = $false
31
+ }
32
+
33
+ WindowsFeature "NET-Framework-Core"
34
+ {
35
+ Ensure="Present"
36
+ Name = "NET-Framework-Core"
37
+ }
38
+ }
39
+ }
40
+
41
+ $configuration = Get-Command Prepare_SQL
42
+ Start-UpliftDSCConfiguration $configuration $config
43
+
44
+ # Setup.exe /q /ACTION=PrepareImage /FEATURES=SQLEngine /InstanceID =<MYINST> /IACCEPTSQLSERVERLICENSETERMS
45
+ $execPath = "$binSourcePath/setup.exe"
46
+ $execArguments = "/qs /ACTION=PrepareImage /FEATURES=$instanceFeatures /InstanceID=$instanceName /IACCEPTSQLSERVERLICENSETERMS"
47
+
48
+ Write-UpliftMessage "Executing prepare action..."
49
+ Write-UpliftMessage " - execPath: $execPath"
50
+ Write-UpliftMessage " - execArguments: $execArguments"
51
+
52
+ $process = Start-Process -FilePath $execPath `
53
+ -ArgumentList "$execArguments" `
54
+ -Wait `
55
+ -PassThru
56
+
57
+ $exitCode = $process.ExitCode;
58
+ Write-Host "Exit code was: $exitCode"
59
+
60
+ exit $exitCode
@@ -0,0 +1,23 @@
1
+ Describe 'SQL Server minimal configuration' {
2
+
3
+ Context "SQL Server" {
4
+
5
+ It 'MSSQL service is running' {
6
+ (get-service MSSQLSERVER).Status | Should BeLike "Running"
7
+ }
8
+
9
+ It 'MSSQL AGENT service is running' {
10
+ (get-service SQLSERVERAGENT).Status | Should BeLike "Running"
11
+ }
12
+
13
+ }
14
+
15
+ Context "SQL Tools" {
16
+
17
+ It 'Ssms.exe is installed' {
18
+ get-command ssms | Should BeLike "*ssms.exe*"
19
+ }
20
+
21
+ }
22
+
23
+ }
@@ -0,0 +1,45 @@
1
+ # fail on errors and include uplift helpers
2
+ $ErrorActionPreference = "Stop"
3
+
4
+ Import-Module Uplift.Core
5
+
6
+ Write-UpliftMessage "Testing SQL Server setup..."
7
+ Write-UpliftEnv
8
+
9
+ $instanceFeatures = Get-UpliftEnvVariable "UPLF_SQL_INSTANCE_FEATURES"
10
+
11
+ # such as SQLENGINE,SSMS,ADV_SSMS
12
+ $instanceFeaturesArray = $instanceFeatures.Split(',')
13
+
14
+ $checkSQLEngine = $instanceFeaturesArray.Contains("SQLENGINE") -eq $true
15
+ $checkSSMS = $instanceFeaturesArray.Contains("SSMS") -eq $true
16
+
17
+ Describe 'SQL Server 2012 minimal configuration' {
18
+
19
+ # always test SQL server itself
20
+ Context "SQL Server" {
21
+
22
+ It 'MSSQL service is running' {
23
+ (get-service MSSQLSERVER).Status | Should BeLike "Running"
24
+ }
25
+
26
+ It 'MSSQL AGENT service is running' {
27
+ (get-service SQLSERVERAGENT).Status | Should BeLike "Running"
28
+ }
29
+
30
+ }
31
+
32
+ # only if
33
+ Context "SQL Tools" {
34
+
35
+ It 'ssms.exe is installed' {
36
+ if($checkSSMS -eq $true) {
37
+ get-command ssms | Should BeLike "*ssms.exe*"
38
+ } else {
39
+ Write-UpliftMessage "Skipping ssms.exe check"
40
+ }
41
+ }
42
+
43
+ }
44
+
45
+ }
@@ -0,0 +1,22 @@
1
+ Describe 'SQL Server 2016 minimal configuration' {
2
+
3
+ Context "SQL Server" {
4
+
5
+ It 'MSSQL service is running' {
6
+ (get-service MSSQLSERVER).Status | Should BeLike "Running"
7
+ }
8
+
9
+ It 'MSSQL AGENT service is running' {
10
+ (get-service SQLSERVERAGENT).Status | Should BeLike "Running"
11
+ }
12
+
13
+ }
14
+
15
+ Context "SQL Tools" {
16
+
17
+ It 'ssms.exe is installed' {
18
+ get-command ssms | Should BeLike "*ssms.exe*"
19
+ }
20
+
21
+ }
22
+ }
@@ -0,0 +1,61 @@
1
+ # fail on errors and include uplift helpers
2
+ $ErrorActionPreference = "Stop"
3
+
4
+ Import-Module Uplift.Core
5
+
6
+ Write-UpliftMessage "Validating Visual Studio install..."
7
+ Write-UpliftEnv
8
+
9
+ $productName = Get-UpliftEnvVariable "UPLF_VS_TEST_PRODUCT_NAME"
10
+ $officeToolsPackageName = Get-UpliftEnvVariable "UPLF_VS_TEST_OFFICETOOLS_PACKAGE_NAME"
11
+
12
+ Describe 'Visual Studio Install' {
13
+
14
+ function Get-AppPackage($appName) {
15
+
16
+ $result = @()
17
+
18
+ $x32 = Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* `
19
+ | Select-Object DisplayName, Name, DisplayVersion, Publisher, InstallDate `
20
+ | Sort-Object "DisplayName" `
21
+ | Where-Object { ($null -ne $_.DisplayName) -and $_.DisplayName.Contains($appName) } `
22
+
23
+ $x64 = Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* `
24
+ | Select-Object DisplayName, Name, DisplayVersion, Publisher, InstallDate `
25
+ | Sort-Object "DisplayName" `
26
+ | Where-Object { ($null -ne $_.DisplayName) -and $_.DisplayName.Contains($appName) } `
27
+
28
+ $result += $x32
29
+ $result += $x64
30
+
31
+ return $result
32
+ }
33
+
34
+ function Confirm-AppPackageInstall($appName) {
35
+ $app = Get-AppPackage $appName
36
+
37
+ if($app.Count -gt 1) {
38
+ # TODO, very nasty :)
39
+ $app = $app[0]
40
+ }
41
+
42
+ $app.DisplayName | Should BeLike "*$appName*"
43
+ }
44
+
45
+ Context "Visual Studio App" {
46
+
47
+ It "$productName" {
48
+ Confirm-AppPackageInstall($productName)
49
+ }
50
+
51
+ }
52
+
53
+ Context "Visual Studio Plugins" {
54
+
55
+ It "$officeToolsPackageName" {
56
+ Confirm-AppPackageInstall("$officeToolsPackageName")
57
+ }
58
+
59
+ }
60
+
61
+ }
@@ -0,0 +1,32 @@
1
+ # fail on errors and include uplift helpers
2
+ $ErrorActionPreference = "Stop"
3
+
4
+ Import-Module Uplift.Core
5
+
6
+ Write-UpliftMessage "Running Visual Studio post-deploy script..."
7
+ Write-UpliftEnv
8
+
9
+ $productName = Get-UpliftEnvVariable "UPLF_VS_PRODUCT_NAME"
10
+
11
+ if ($productName.Contains("2015") -eq $true) {
12
+
13
+ Write-UpliftMessage "Detected VS 2015 install. Ensuring additional plugins..."
14
+
15
+ # ensuring "choco install -y webpicmd" is here
16
+ # it should come with APP image but in case we failed or building on old image, install it in the fly
17
+ Write-UpliftMessage "Ensuring webpicmd install..."
18
+ choco install -y webpicmd --limit-output --acceptlicense --no-progress
19
+ Confirm-UpliftExitCode $LASTEXITCODE "Cannot run choco install -y webpicmd"
20
+
21
+ Write-UpliftMessage "Installing Office Development tools via webpicmd"
22
+ # https://github.com/mszcool/devmachinesetup/blob/master/Install-WindowsMachine.ps1
23
+ webpicmd /Install /Products:OfficeToolsForVS2015 /AcceptEula
24
+ Confirm-UpliftExitCode $LASTEXITCODE "Cannot install Office Development tools"
25
+
26
+ } else {
27
+ Write-UpliftMessage "No post deploy is needed..."
28
+ }
29
+
30
+ Write-UpliftMessage "Visual Studio post-deploy script completed."
31
+
32
+ exit 0;
@@ -0,0 +1,69 @@
1
+ # fail on errors and include uplift helpers
2
+ $ErrorActionPreference = "Stop"
3
+
4
+ Import-Module Uplift.Core
5
+
6
+ Write-UpliftMessage "Installing Visual Studio..."
7
+ Write-UpliftEnv
8
+
9
+ $execPath = Get-UpliftEnvVariable "UPLF_VS_EXECUTABLE_PATH"
10
+ $productName = Get-UpliftEnvVariable "UPLF_VS_PRODUCT_NAME"
11
+ $deploymentFilePath = Get-UpliftEnvVariable "UPLF_VS_ADMIN_DEPLOYMENT_FILE_PATH"
12
+
13
+ $domainUserName = Get-UpliftEnvVariable "UPLF_VS_DOMAIN_USER_NAME"
14
+ $domainUserPassword = Get-UpliftEnvVariable "UPLF_VS_DOMAIN_USER_PASSWORD"
15
+
16
+ # check if $execPath exists
17
+ # the reason is that different VS editions have different EXE files:
18
+ # - vs_ultimate.exe
19
+ # - vs_enterprise.exe
20
+ # if not, them look for .exe file at the top folder in $execPath
21
+ $execPath = Find-UpliftFileInPath $execPath
22
+ Write-UpliftMessage "Using VS install file: $execPath"
23
+
24
+ Configuration Install_VS2013 {
25
+
26
+ Import-DSCResource -Name MS_xVisualStudio
27
+
28
+ Node localhost {
29
+
30
+ $securePassword = ConvertTo-SecureString $Node.DomainUserPassword -AsPlainText -Force
31
+ $domainUserCreds = New-Object System.Management.Automation.PSCredential($Node.DomainUserName, $securePassword)
32
+
33
+ MS_xVisualStudio VistualStudio
34
+ {
35
+ Ensure = "Present"
36
+ PsDscRunAsCredential = $domainUserCreds
37
+
38
+ ExecutablePath = $Node.ExecutablePath
39
+ ProductName = $Node.ProductName
40
+ AdminDeploymentFile = $Node.AdminDeploymentFile
41
+ }
42
+ }
43
+ }
44
+
45
+ $config = @{
46
+ AllNodes = @(
47
+ @{
48
+ NodeName = 'localhost'
49
+
50
+ PSDscAllowDomainUser = $true
51
+ PSDscAllowPlainTextPassword = $true
52
+
53
+ RetryCount = 10
54
+ RetryIntervalSec = 30
55
+
56
+ DomainUserName = $domainUserName
57
+ DomainUserPassword = $domainUserPassword
58
+
59
+ ExecutablePath = $execPath
60
+ ProductName = $productName
61
+ AdminDeploymentFile = $deploymentFilePath
62
+ }
63
+ )
64
+ }
65
+
66
+ $configuration = Get-Command Install_VS2013
67
+ Start-UpliftDSCConfiguration $configuration $config
68
+
69
+ exit 0
@@ -0,0 +1,61 @@
1
+ # fail on errors and include uplift helpers
2
+ $ErrorActionPreference = "Stop"
3
+
4
+ Import-Module Uplift.Core
5
+
6
+ Write-UpliftMessage "Validating Visual Studio install..."
7
+ Write-UpliftEnv
8
+
9
+ $productName = Get-UpliftEnvVariable "UPLF_VS_TEST_PRODUCT_NAME"
10
+ #$officeToolsPackageName = Get-UpliftEnvVariable "UPLF_VS_TEST_OFFICETOOLS_PACKAGE_NAME"
11
+
12
+ Describe 'Visual Studio Install' {
13
+
14
+ function Get-AppPackage($appName) {
15
+
16
+ $result = @()
17
+
18
+ $x32 = Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* `
19
+ | Select-Object DisplayName, Name, DisplayVersion, Publisher, InstallDate `
20
+ | Sort-Object "DisplayName" `
21
+ | Where-Object { ($null -ne $_.DisplayName) -and $_.DisplayName.Contains($appName) } `
22
+
23
+ $x64 = Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* `
24
+ | Select-Object DisplayName, Name, DisplayVersion, Publisher, InstallDate `
25
+ | Sort-Object "DisplayName" `
26
+ | Where-Object { ($null -ne $_.DisplayName) -and $_.DisplayName.Contains($appName) } `
27
+
28
+ $result += $x32
29
+ $result += $x64
30
+
31
+ return $result
32
+ }
33
+
34
+ function Confirm-AppPackageInstall($appName) {
35
+ $app = Get-AppPackage $appName
36
+
37
+ if($app.Count -gt 1) {
38
+ # TODO, very nasty :)
39
+ $app = $app[0]
40
+ }
41
+
42
+ $app.DisplayName | Should BeLike "*$appName*"
43
+ }
44
+
45
+ Context "Visual Studio App" {
46
+
47
+ It "$productName" {
48
+ Confirm-AppPackageInstall($productName)
49
+ }
50
+
51
+ }
52
+
53
+ # Context "Visual Studio Plugins" {
54
+
55
+ # It "$officeToolsPackageName" {
56
+ # Confirm-AppPackageInstall("$officeToolsPackageName")
57
+ # }
58
+
59
+ # }
60
+
61
+ }
@@ -0,0 +1,34 @@
1
+ # fail on errors and include uplift helpers
2
+ $ErrorActionPreference = "Stop"
3
+
4
+ Import-Module Uplift.Core
5
+
6
+ Write-UpliftMessage "Running Visual Studio post-deploy script..."
7
+ Write-UpliftEnv
8
+
9
+ $productName = Get-UpliftEnvVariable "UPLF_VS_PRODUCT_NAME"
10
+
11
+ if ($productName.Contains("2015") -eq $true) {
12
+
13
+ Write-UpliftMessage "Detected VS 2015 install. Ensuring additional plugins..."
14
+
15
+ # ensuring "choco install -y webpicmd" is here
16
+ # it should come with APP image but in case we failed or building on old image, install it in the fly
17
+ Write-UpliftMessage "Ensuring webpicmd install..."
18
+
19
+ choco install -y webpicmd --limit-output --acceptlicense --no-progress
20
+ Confirm-UpliftExitCode $LASTEXITCODE "Cannot run choco install -y webpicmd"
21
+
22
+ Write-UpliftMessage "Installing Office Development tools via webpicmd"
23
+ # https://github.com/mszcool/devmachinesetup/blob/master/Install-WindowsMachine.ps1
24
+
25
+ webpicmd /Install /Products:OfficeToolsForVS2015 /AcceptEula
26
+ Confirm-UpliftExitCode $LASTEXITCODE "Cannot install Office Development tools"
27
+
28
+ } else {
29
+ Write-UpliftMessage "No post deploy is needed..."
30
+ }
31
+
32
+ Write-UpliftMessage "Visual Studio post-deploy script completed."
33
+
34
+ exit 0