open-nomad/e2e/terraform/packer/windows-2016-amd64/install-docker.ps1
Tim Gross 08ae13d3b9
e2e: Windows provisioning improvements (#9246)
Small changes to the Windows 2016 Packer build for debuggability of
provisioning:

* improve verbosity of powershell error handling
* remove unused "tools" installation
* use ssh communicator for Packer to improve Packer build times and eliminate
  deprecated winrm remote access (unavailable from current macOS)
2020-11-09 13:29:40 -05:00

41 lines
1.4 KiB
PowerShell
Executable file

Set-StrictMode -Version latest
$ErrorActionPreference = "Stop"
$RunningAsAdmin = ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")
if (!$RunningAsAdmin) {
Write-Error "Must be executed in Administrator level shell."
exit 1
}
# Force TLS1.2
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Try {
Write-Output "Installing containers feature."
Install-WindowsFeature -Name Containers -ErrorAction Stop
Write-Output "Creating user for Docker."
net localgroup docker /add
net localgroup docker $env:USERNAME /add
Write-Output "Installing Docker."
# Getting an error at this step? Check for their "status page" at:
# https://github.com/PowerShell/PowerShellGallery/blob/master/psgallery_status.md
Set-PSRepository -InstallationPolicy Trusted -Name PSGallery -ErrorAction Stop
Install-Module -Name DockerMsftProvider -Repository PSGallery -Force -ErrorAction Stop
Install-Package -Name docker -ProviderName DockerMsftProvider -Force -ErrorAction Stop
} Catch {
Write-Output "Failed to install Docker."
Write-Output $_
$host.SetShouldExit(-1)
throw
} Finally {
# clean up by re-securing this package repo
Set-PSRepository -InstallationPolicy Untrusted -Name PSGallery
}
Write-Output "Installed Docker."