vagrant-uplift 0.2.1902.18

Sign up to get free protection for your applications and to get access to all the features.
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