This commit is contained in:
Nikita Bykov
2020-10-29 11:05:39 +03:00
36 changed files with 327 additions and 89 deletions

View File

@@ -1,10 +1,11 @@
| Announcements |
|-|
| [[Ubuntu] [Windows] Boost 1.69.0 will be deprecated on November, 10](https://github.com/actions/virtual-environments/issues/1847) |
| [[In Discussion] Git internal tools will be removed from PATH Windows images and replaced with MSYS2 tools](https://github.com/actions/virtual-environments/issues/1525) |
***
# Microsoft Windows Server 2016 Datacenter
- OS Version: 10.0.14393 Build 3930
- Image Version: 20201012.1
- OS Version: 10.0.14393 Build 3986
- Image Version: 20201020.1
## Installed Software
### Language and Runtime
@@ -14,7 +15,7 @@
- Java 13.0.2
- Python 3.7.9
- Ruby 2.5.8p224
- Go 1.14.9
- Go 1.14.10
- PHP 7.4.11
- Julia 1.5.2
- Perl 5.32.0
@@ -25,46 +26,46 @@
- Vcpkg 2020.06.15
- NPM 6.14.8
- Yarn 1.22.10
- pip 20.2.3 (python 3.7)
- Miniconda 4.6.14
- pip 20.2.4 (python 3.7)
- Miniconda 4.8.3
- RubyGems 3.1.4
- Helm 3.3.4
- Composer 1.10.13
- Composer 1.10.15
- NuGet 5.7.0.6726
### Project Management
- Ant 1.10.9
- Maven 3.6.3
- Gradle 6.6
- Gradle 6.7
- sbt 1.4.0
### Tools
- azcopy 10.6.0
- Bazel 3.6.0
- Bazelisk 1.7.1
- Bazel 3.7.0
- Bazelisk 1.7.3
- CMake 3.18.4
- CodeQL Action Bundle 2.2.5
- CodeQL Action Bundle 2.3.0
- R 4.0.3
- Docker 19.03.12
- Docker-compose 1.27.2
- Git 2.28.0
- Git LFS 2.11.0
- Google Cloud SDK 313.0.1
- Docker-compose 1.27.4
- Git 2.29.0
- Git LFS 2.12.0
- Google Cloud SDK 315.0.0
- InnoSetup 6.0.5
- jq 1.6
- Kubectl 1.19.1
- Kubectl 1.19.3
- Kind 0.9.0
- Mingw-w64 8.1.0
- Mercurial 5.0
- NSIS v3.06.1
- Newman 5.2.0
- OpenSSL 1.1.1
- Packer 1.6.3
- Pulumi v2.11.2
- Packer 1.6.4
- Pulumi v2.12.0
- Subversion (SVN) 1.14.0
- ghc 8.10.2
- Cabal 3.2.0.0
- Stack 2.3.3
- Stack 2.5.1
- WinAppDriver 1.1.1809.18001
- zstd 1.4.5
- VSWhere 2.8.4
@@ -72,12 +73,12 @@
- yamllint 1.25.0
### CLI Tools
- Azure CLI 2.12.1
- Azure CLI 2.13.0
- Azure DevOps CLI extension 0.18.0
- Azure Dev Spaces CLI 1.0.20200921.3
- AWS CLI 2.0.56
- AWS CLI 2.0.57
- AWS SAM CLI 1.6.2
- AWS Session Manager CLI 1.1.61.0
- AWS Session Manager CLI 1.2.7.0
- Alibaba Cloud CLI 3.0.60
- Cloud Foundry CLI 6.53.0
- Hub CLI 2.14.2
@@ -93,11 +94,11 @@
- cargo-outdated v0.9.11
### Browsers and webdrivers
- Google Chrome 86.0.4240.75
- Google Chrome 86.0.4240.111
- Chrome Driver 86.0.4240.22
- Microsoft Edge 86.0.622.38
- Microsoft Edge Driver 86.0.622.38
- Mozilla Firefox 81.0.1
- Microsoft Edge 86.0.622.48
- Microsoft Edge Driver 86.0.622.48
- Mozilla Firefox 82.0
- Gecko Driver 0.27.0
- IE Driver 3.150.1.0
@@ -137,8 +138,8 @@ Note: MSYS2 is pre-installed on image but not added to PATH.
| 1.11.13 | x64 | GOROOT_1_11_X64 |
| 1.12.17 | x64 | GOROOT_1_12_X64 |
| 1.13.15 | x64 | GOROOT_1_13_X64 |
| 1.14.9 (Default) | x64 | GOROOT_1_14_X64 |
| 1.15.2 | x64 | GOROOT_1_15_X64 |
| 1.14.10 (Default) | x64 | GOROOT_1_14_X64 |
| 1.15.3 | x64 | GOROOT_1_15_X64 |
#### Node
@@ -147,7 +148,7 @@ Note: MSYS2 is pre-installed on image but not added to PATH.
| 8.17.0 | x64 |
| 10.22.1 | x64 |
| 12.19.0 | x64 |
| 14.13.1 | x64 |
| 14.14.0 | x64 |
#### Python
@@ -158,6 +159,7 @@ Note: MSYS2 is pre-installed on image but not added to PATH.
| 3.6.8 | x64, x86 |
| 3.7.9 (Default) | x64, x86 |
| 3.8.6 | x64, x86 |
| 3.9.0 | x64, x86 |
#### Ruby
@@ -200,6 +202,7 @@ Note: MSYS2 is pre-installed on image but not added to PATH.
### Database tools
- Azure CosmosDb Emulator 2.11.6.0
- DacFx 15.0.4897.1
- SQLPS 1.0
- MySQL 5.7.21.0
@@ -207,7 +210,7 @@ Note: MSYS2 is pre-installed on image but not added to PATH.
### Visual Studio Enterprise 2017
| Name | Version | Path |
| ----------------------------- | --------------- | -------------------------------------------------------------- |
| Visual Studio Enterprise 2017 | 15.9.28307.1259 | C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise |
| Visual Studio Enterprise 2017 | 15.9.28307.1274 | C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise |
#### Workloads, components and extensions:
@@ -476,20 +479,20 @@ Note: MSYS2 is pre-installed on image but not added to PATH.
### .NET Core SDK
`Location C:\Program Files\dotnet\sdk`
- 1.1.14 2.1.300 2.1.301 2.1.302 2.1.401 2.1.402 2.1.403 2.1.500 2.1.502 2.1.503 2.1.504 2.1.505 2.1.506 2.1.507 2.1.508 2.1.509 2.1.510 2.1.511 2.1.512 2.1.513 2.1.514 2.1.515 2.1.516 2.1.517 2.1.518 2.1.602 2.1.603 2.1.604 2.1.605 2.1.606 2.1.607 2.1.608 2.1.609 2.1.610 2.1.611 2.1.612 2.1.613 2.1.614 2.1.615 2.1.700 2.1.701 2.1.801 2.1.802 2.1.803 2.1.804 2.1.805 2.1.806 2.1.807 2.1.808 2.1.809 2.1.810 3.1.100 3.1.101 3.1.102 3.1.103 3.1.104 3.1.105 3.1.106 3.1.107 3.1.108 3.1.200 3.1.201 3.1.202 3.1.300 3.1.301 3.1.302 3.1.401 3.1.402
- 1.1.14 2.1.300 2.1.301 2.1.302 2.1.401 2.1.402 2.1.403 2.1.500 2.1.502 2.1.503 2.1.504 2.1.505 2.1.506 2.1.507 2.1.508 2.1.509 2.1.510 2.1.511 2.1.512 2.1.513 2.1.514 2.1.515 2.1.516 2.1.517 2.1.518 2.1.519 2.1.602 2.1.603 2.1.604 2.1.605 2.1.606 2.1.607 2.1.608 2.1.609 2.1.610 2.1.611 2.1.612 2.1.613 2.1.614 2.1.615 2.1.616 2.1.700 2.1.701 2.1.801 2.1.802 2.1.803 2.1.804 2.1.805 2.1.806 2.1.807 2.1.808 2.1.809 2.1.810 2.1.811 3.1.100 3.1.101 3.1.102 3.1.103 3.1.104 3.1.105 3.1.106 3.1.107 3.1.108 3.1.109 3.1.200 3.1.201 3.1.202 3.1.300 3.1.301 3.1.302 3.1.401 3.1.402 3.1.403
### .NET Core Runtime
`Location: C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All`
- 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 2.1.10 2.1.11 2.1.12 2.1.13 2.1.14 2.1.15 2.1.16 2.1.17 2.1.18 2.1.19 2.1.20 2.1.21 2.1.22
- 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 2.1.10 2.1.11 2.1.12 2.1.13 2.1.14 2.1.15 2.1.16 2.1.17 2.1.18 2.1.19 2.1.20 2.1.21 2.1.22 2.1.23
`Location: C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App`
- 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 2.1.10 2.1.11 2.1.12 2.1.13 2.1.14 2.1.15 2.1.16 2.1.17 2.1.18 2.1.19 2.1.20 2.1.21 2.1.22 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8
- 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 2.1.10 2.1.11 2.1.12 2.1.13 2.1.14 2.1.15 2.1.16 2.1.17 2.1.18 2.1.19 2.1.20 2.1.21 2.1.22 2.1.23 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9
`Location: C:\Program Files\dotnet\shared\Microsoft.NETCore.App`
- 1.0.16 1.1.13 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 2.1.10 2.1.11 2.1.12 2.1.13 2.1.14 2.1.15 2.1.16 2.1.17 2.1.18 2.1.19 2.1.20 2.1.21 2.1.22 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8
- 1.0.16 1.1.13 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 2.1.10 2.1.11 2.1.12 2.1.13 2.1.14 2.1.15 2.1.16 2.1.17 2.1.18 2.1.19 2.1.20 2.1.21 2.1.22 2.1.23 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9
`Location: C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App`
- 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8
- 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9
### .NET Framework
`Type: Developer Pack`
@@ -518,7 +521,7 @@ All other versions are saved but not installed.
| Pester | 3.4.0<br>5.0.4 |
| PowerShellGet | 1.0.0.1<br>2.2.4.1<br>2.2.5 |
| PSWindowsUpdate | 2.2.0.2 |
| SqlServer | 21.1.18228 |
| SqlServer | 21.1.18229 |
| VSSetup | 2.2.16 |
### Android

View File

@@ -0,0 +1,23 @@
# Create shells folder
$shellPath = "C:\shells"
New-Item -Path $shellPath -ItemType Directory | Out-Null
# sh and bash <--> C:\msys64\usr\bin\bash.exe
New-Item -ItemType SymbolicLink -Path "$shellPath\bash.exe" -Target "C:\msys64\usr\bin\bash.exe" | Out-Null
New-Item -ItemType SymbolicLink -Path "$shellPath\sh.exe" -Target "C:\msys64\usr\bin\sh.exe" | Out-Null
# WSL is available on Windows Server 2019
if (Test-IsWin19)
{
# winbash <--> C:\Windows\System32\bash.exe
New-Item -ItemType SymbolicLink -Path "$shellPath\winbash.exe" -Target "$env:SystemRoot\System32\bash.exe" | Out-Null
}
# gitbash <--> C:\Program Files\Git\bin\bash.exe
New-Item -ItemType SymbolicLink -Path "$shellPath\gitbash.exe" -Target "$env:ProgramFiles\Git\bin\bash.exe" | Out-Null
# msysbash <--> C:\msys64\usr\bin\bash.exe
New-Item -ItemType SymbolicLink -Path "$shellPath\msysbash.exe" -Target "C:\msys64\usr\bin\bash.exe" | Out-Null
# Add shells to PATH
Add-MachinePathItem $shellPath

View File

@@ -30,3 +30,7 @@ New-Item -Path $winInstallDir -ItemType Directory -Force
# Remove AllUsersAllHosts profile
Remove-Item $profile.AllUsersAllHosts -Force
# Clean yarn and npm cache
yarn cache clean
npm cache clean --force

View File

@@ -26,7 +26,7 @@ Install-Binary -Url $downloadUrl `
"/SP-", `
"/CLOSEAPPLICATIONS", `
"/RESTARTAPPLICATIONS", `
"/o:PathOption=CmdTools", `
"/o:PathOption=Cmd", `
"/o:BashTerminalOption=ConHost", `
"/o:EnableSymlinks=Enabled", `
"/COMPONENTS=gitlfs")
@@ -36,15 +36,5 @@ Choco-Install -PackageName hub
# Disable GCM machine-wide
[Environment]::SetEnvironmentVariable("GCM_INTERACTIVE", "Never", [System.EnvironmentVariableTarget]::Machine)
Add-MachinePathItem "C:\Program Files\Git\bin"
if (Test-IsWin16) {
$env:Path += ";$env:ProgramFiles\Git\usr\bin\"
}
# Add well-known SSH host keys to ssh_known_hosts
ssh-keyscan -t rsa github.com >> "C:\Program Files\Git\etc\ssh\ssh_known_hosts"
ssh-keyscan -t rsa ssh.dev.azure.com >> "C:\Program Files\Git\etc\ssh\ssh_known_hosts"
Invoke-PesterTests -TestFile "Git" -TestName "Git"
Invoke-PesterTests -TestFile "CLI.Tools" -TestName "Hub CLI"

View File

@@ -7,7 +7,7 @@ Choco-Install -PackageName mingw
# Make a copy of mingw32-make.exe to make.exe, which is a more discoverable name
# and so the same command line can be used on Windows as on macOS and Linux
$path = where.exe mingw32-make.exe | Get-Item
$path = Get-Command mingw32-make.exe -CommandType All | Where-Object { $_.Path.Contains("C:\ProgramData\Chocolatey") } | Get-Item
Copy-Item -Path $path -Destination (Join-Path $path.Directory 'make.exe')
Invoke-PesterTests -TestFile "Tools" -TestName "Mingw64"

View File

@@ -9,35 +9,19 @@
$dash = "-" * 40
$origPath = $env:PATH
$gitPath = "$env:ProgramFiles\Git"
$msys2_release = "https://api.github.com/repos/msys2/msys2-installer/releases/latest"
$msys2Uri = ((Invoke-RestMethod $msys2_release).assets | Where-Object {
$_.name -match "x86_64" -and $_.name.EndsWith("tar.xz") }).browser_download_url
# Download the latest msys2 x86_64, filename includes release date
Write-Host "Starting msys2 download using $($msys2Uri.split('/')[-1])"
# Downloading msys2
$msys2Release = "https://api.github.com/repos/msys2/msys2-installer/releases/latest"
$msys2Uri = ((Invoke-RestMethod $msys2Release).assets | Where-Object {
$_.name -match "x86_64" -and $_.name.EndsWith("sfx.exe") }).browser_download_url
$msys2File = Start-DownloadWithRetry -Url $msys2Uri
Write-Host "Finished download"
# nix style path for tar
$msys2FileU = "/$msys2File".replace(':', '').replace('\', '/')
# Git tar needs exe's from mingw64\bin
$env:PATH = "$gitPath\usr\bin;$gitPath\mingw64\bin;$origPath"
$tar = "$gitPath\usr\bin\tar.exe"
# extract tar.xz to C:\
# extract sfx.exe to C:\
Write-Host "Starting msys2 extraction"
&$tar -xJf $msys2FileU -C /c/
Remove-Item $msys2File
& $msys2File -y -oC:\
Write-Host "Finished extraction"
# Add msys2 bin tools folders to PATH temporary
$env:PATH = "C:\msys64\mingw64\bin;C:\msys64\usr\bin;$origPath"
$env:PATH = "C:\msys64\mingw64\bin;C:\msys64\usr\bin;$env:PATH"
Write-Host "`n$dash bash pacman-key --init"
bash.exe -c "pacman-key --init 2>&1"
@@ -73,6 +57,10 @@ Write-Host "`n$dash Install mingw32 packages"
$pre = "mingw-w64-i686-"
pacman.exe -S --noconfirm --needed --noprogressbar $tools32.replace('___', $pre).split(' ')
# install openssh
Write-Host "`n$dash Install openssh package"
pacman.exe -S --noconfirm --needed --noprogressbar openssh
# clean all packages to decrease image size
Write-Host "`n$dash Clean packages"
pacman.exe -Scc --noconfirm
@@ -88,4 +76,23 @@ pacman.exe -Q | grep -v ^mingw-w64-
Write-Host "`nMSYS2 installation completed"
# Environment
# add C:\msys64\mingw64\bin and C:\msys64\usr\bin to PATH
# C:\msys64\mingw64\bin add after C:\Windows\System32 to not replace built-in tar.exe
$regEnvKey = 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\'
$pathValue = Get-ItemPropertyValue -Path $regEnvKey -Name 'Path'
$pathValue += ";C:\msys64\mingw64\bin;C:\msys64\usr\bin"
Set-ItemProperty -Path $regEnvKey -Name 'Path' -Value $pathValue
# Add well-known SSH host keys to ssh_known_hosts to Msys2
ssh-keyscan -t rsa github.com >> "C:\msys64\etc\ssh\ssh_known_hosts"
ssh-keyscan -t rsa ssh.dev.azure.com >> "C:\msys64\etc\ssh\ssh_known_hosts"
# Add well-known SSH host keys to ssh_known_hosts to Git
if (Test-Path "C:\Program Files\Git\etc\ssh")
{
ssh-keyscan -t rsa github.com >> "C:\Program Files\Git\etc\ssh\ssh_known_hosts"
ssh-keyscan -t rsa ssh.dev.azure.com >> "C:\Program Files\Git\etc\ssh\ssh_known_hosts"
}
Invoke-PesterTests -TestFile "MSYS2"

View File

@@ -3,7 +3,7 @@
## Desc: Install SQL PowerShell tool
################################################################################
$BaseUrl = "https://download.microsoft.com/download/8/7/2/872BCECA-C849-4B40-8EBE-21D48CDF1456/ENU/x64"
$BaseUrl = "https://download.microsoft.com/download/B/1/7/B1783FE9-717B-4F78-A39A-A2E27E3D679D/ENU/x64"
# install required MSIs
$SQLSysClrTypesName = "SQLSysClrTypes.msi"

View File

@@ -271,6 +271,13 @@ function Get-PacmanVersion {
return "- Pacman $pacmanVersion"
}
function Get-ShellTarget {
$shells = Get-ChildItem C:\shells -File | Select-Object @{n="Name";e={
$name = $_.Name
if ($name -eq 'bash.exe') {"$name (Default)"} else {$name}}},@{n="Target";e={@($_.Target)[0]}} | Sort-Object Name
$shells | New-MDTable -Columns ([ordered]@{Name = "left"; Target = "left";})
}
function Get-YAMLLintVersion {
yamllint --version
}

View File

@@ -143,14 +143,22 @@ $markdown += New-MDList -Style Unordered -Lines @(
(Get-SeleniumWebDriverVersion -Driver "iexplorer")
)
$markdown += New-MDHeader "Shells" -Level 3
$markdown += Get-ShellTarget
$markdown += New-MDNewLine
$markdown += New-MDHeader "MSYS2" -Level 3
$markdown += Get-PacmanVersion
$markdown += New-MDNewLine
$markdown += New-MDHeader "Notes:" -Level 5
$markdown += @'
```
Location: C:\msys64
Note: MSYS2 is pre-installed on image but not added to PATH.
1. MSYS2 is pre-installed on image
2. C:\msys64\mingw64\bin is added to PATH and has lower precedence than C:\Windows\System32
3. C:\msys64\usr\bin is added to PATH and has lower precedence than C:\Windows\System32
4. Default bash.exe shell is set to the C:\msys64\usr\bin\bash.exe
```
'@
$markdown += New-MDNewLine

View File

@@ -1,5 +1,5 @@
Describe "Git" {
$gitTools = 'bash', 'awk', 'git', 'git-lfs'
$gitTools = 'git', 'git-lfs'
$gitTestCases = $gitTools | ForEach-Object {
@{
toolName = $_

View File

@@ -0,0 +1,50 @@
Describe "Shell" {
$shellTestCases = @(
@{Name = "C:\shells\bash.exe"; Target = "C:\msys64\usr\bin\bash.exe"},
@{Name = "C:\shells\sh.exe"; Target = "C:\msys64\usr\bin\sh.exe"},
@{Name = "C:\shells\gitbash.exe"; Target = "$env:ProgramFiles\Git\bin\bash.exe"},
@{Name = "C:\shells\msysbash.exe"; Target = "C:\msys64\usr\bin\bash.exe"}
)
$pathTestCases = @(
@{Path = "C:\shells"},
@{Path = "C:\msys64\mingw64\bin"},
@{Path = "C:\msys64\usr\bin"}
)
$IsWin16 = Test-IsWin16
It "Default bash.exe from MSYS2" {
(Get-Command bash).Path | Should -BeExactly "C:\shells\bash.exe"
}
It "Default sh.exe from MSYS2" {
(Get-Command sh).Path | Should -BeExactly "C:\shells\sh.exe"
}
It "Folder C:\shells exists" {
"C:\shells" | Should -Exist
}
It "C:\Windows\System32 before C:\msys64\mingw64\bin and C:\msys64\usr\bin" {
$path = $env:Path.Split(";").ToLower()
$indexOfSystem32 = $path.IndexOf("c:\windows\system32")
$path.IndexOf("c:\msys64\mingw64\bin") | Should -BeGreaterThan $indexOfSystem32
$path.IndexOf("c:\msys64\usr\bin") | Should -BeGreaterThan $indexOfSystem32
}
It "C:\shells\winbash.exe target to $env:SystemRoot\System32\bash.exe" -Skip:$IsWin16 {
$Name = "C:\shells\winbash.exe"
$Target = "$env:SystemRoot\System32\bash.exe"
(Get-Item $Name).Target | Should -BeExactly $Target
}
It "<Name> target to <Target>" -TestCases $shellTestCases {
(Get-Item $Name).Target | Should -BeExactly $Target
}
It "<Path> is in PATH" -TestCases $pathTestCases {
$env:Path.Split(";") | Should -Contain $Path
}
}

View File

@@ -333,7 +333,8 @@
"type": "powershell",
"scripts": [
"{{ template_dir }}/scripts/Installers/Install-WindowsUpdates.ps1",
"{{ template_dir }}/scripts/Installers/Configure-DynamicPort.ps1"
"{{ template_dir }}/scripts/Installers/Configure-DynamicPort.ps1",
"{{ template_dir }}/scripts/Installers/Configure-Shell.ps1"
],
"elevated_user": "{{user `install_user`}}",
"elevated_password": "{{user `install_password`}}"

View File

@@ -331,7 +331,8 @@
"type": "powershell",
"scripts": [
"{{ template_dir }}/scripts/Installers/Install-WindowsUpdates.ps1",
"{{ template_dir }}/scripts/Installers/Configure-DynamicPort.ps1"
"{{ template_dir }}/scripts/Installers/Configure-DynamicPort.ps1",
"{{ template_dir }}/scripts/Installers/Configure-Shell.ps1"
],
"elevated_user": "{{user `install_user`}}",
"elevated_password": "{{user `install_password`}}"