mirror of
https://github.com/actions/runner-images.git
synced 2025-12-12 20:26:49 +00:00
PostgreSQL install on Ubuntu/Windows. (#636)
* added windows installation script for postgresql * removed if from Start-PostreSQL * added script to packar template. * changed postgresql.sh for ubuntu. * postgresql stop and disalbe services. * change name of the functions * Stop postgreSQL after validation instead of start. * added validation and re-work installation prcoedur * remove redundunt code from psql * correct intendation * path to Path * added PostgreSQL validation procedure. * Removed useless last line. * redundunt parameter passed in function call. * removed repeated part of code. * removed Stop function since it was useless. * spaces * spaces = * Update Windows2019-Azure.json * resolve confictls * added validate and install postgresql * added password to choco install and variables. * add new system variables. * added --params flag * added correct quotas * added logging for PostgreSQL install Co-authored-by: Dariy.Nurgaleev <d.nurgaleev@trueengineering.ru>
This commit is contained in:
@@ -7,10 +7,26 @@
|
|||||||
# Source the helpers for use with the script
|
# Source the helpers for use with the script
|
||||||
source $HELPER_SCRIPTS/document.sh
|
source $HELPER_SCRIPTS/document.sh
|
||||||
|
|
||||||
|
#Preparing repo for PostgreSQL 12.
|
||||||
|
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
|
||||||
|
echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" | tee /etc/apt/sources.list.d/pgdg.list
|
||||||
|
|
||||||
|
echo "Install PostgreSQL"
|
||||||
|
apt update
|
||||||
|
apt install postgresql postgresql-client
|
||||||
|
|
||||||
echo "Install libpq-dev"
|
echo "Install libpq-dev"
|
||||||
apt-get install libpq-dev
|
apt-get install libpq-dev
|
||||||
|
|
||||||
echo "Install Postgresql Client"
|
#Verify that PostgreSQL is ready for accept incoming connections.
|
||||||
apt-get install postgresql-client
|
# exit codes:
|
||||||
|
# ready - 0
|
||||||
|
# reject - 1
|
||||||
|
# connection timeout - 2
|
||||||
|
pg_isready
|
||||||
|
|
||||||
DocumentInstalledItem "$(psql -V 2>&1 | cut -d ' ' -f 1,2,3)"
|
DocumentInstalledItem "$(psql -V 2>&1 | cut -d ' ' -f 1,2,3)"
|
||||||
|
|
||||||
|
# Disable postgresql.service
|
||||||
|
systemctl is-active --quiet postgresql.service && systemctl stop postgresql.service
|
||||||
|
systemctl disable postgresql.service
|
||||||
@@ -312,6 +312,12 @@
|
|||||||
"scripts":[
|
"scripts":[
|
||||||
"{{ template_dir }}/scripts/Installers/Install-7zip.ps1"
|
"{{ template_dir }}/scripts/Installers/Install-7zip.ps1"
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "powershell",
|
||||||
|
"scripts":[
|
||||||
|
"{{ template_dir }}/scripts/Installers/Install-PostgreSQL.ps1"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "powershell",
|
"type": "powershell",
|
||||||
@@ -519,6 +525,12 @@
|
|||||||
"{{ template_dir }}/scripts/Installers/Install-MysqlCli.ps1"
|
"{{ template_dir }}/scripts/Installers/Install-MysqlCli.ps1"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"type": "powershell",
|
||||||
|
"scripts":[
|
||||||
|
"{{ template_dir }}/scripts/Installers/Validate-PostgreSQL.ps1"
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"type": "powershell",
|
"type": "powershell",
|
||||||
"scripts":[
|
"scripts":[
|
||||||
|
|||||||
@@ -621,6 +621,12 @@
|
|||||||
"{{ template_dir }}/scripts/Installers/Install-Vcpkg.ps1"
|
"{{ template_dir }}/scripts/Installers/Install-Vcpkg.ps1"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"type": "powershell",
|
||||||
|
"scripts":[
|
||||||
|
"{{ template_dir }}/scripts/Installers/Install-PostgreSQL.ps1"
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"type": "powershell",
|
"type": "powershell",
|
||||||
"scripts":[
|
"scripts":[
|
||||||
@@ -944,6 +950,12 @@
|
|||||||
"{{ template_dir }}/scripts/Installers/Validate-Vcpkg.ps1"
|
"{{ template_dir }}/scripts/Installers/Validate-Vcpkg.ps1"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"type": "powershell",
|
||||||
|
"scripts":[
|
||||||
|
"{{ template_dir }}/scripts/Installers/Validate-PostgreSQL.ps1"
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"type": "powershell",
|
"type": "powershell",
|
||||||
"scripts":[
|
"scripts":[
|
||||||
|
|||||||
22
images/win/scripts/Installers/Install-PostgreSQL.ps1
Normal file
22
images/win/scripts/Installers/Install-PostgreSQL.ps1
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
$ErrorActionPreference = "Stop"
|
||||||
|
|
||||||
|
Import-Module -Name ImageHelpers
|
||||||
|
|
||||||
|
#Define user and password for PostgreSQL database
|
||||||
|
$postgresusr="postgres"
|
||||||
|
$postgrespwd="root"
|
||||||
|
|
||||||
|
#Prepare environment variable for validation
|
||||||
|
Set-SystemVariable -SystemVariable PGUSER -Value $postgresusr
|
||||||
|
Set-SystemVariable -SystemVariable PGPASSWORD -Value $postgrespwd
|
||||||
|
#Install latest PostgreSQL
|
||||||
|
|
||||||
|
cinst postgresql --params "/Password:$postgrespwd" --params-global --debug --verbose
|
||||||
|
|
||||||
|
#Get Path to pg_ctl.exe
|
||||||
|
$paths = (Get-CimInstance Win32_Service -Filter "Name LIKE 'postgresql-%'").PathName
|
||||||
|
#Parse output of command above to obtain pure path
|
||||||
|
$pgbin = $paths.split('"')[1].replace("\pg_ctl.exe", "")
|
||||||
|
#Added PostgreSQL bin path into PATH variable.
|
||||||
|
Add-MachinePathItem $pgbin
|
||||||
|
|
||||||
35
images/win/scripts/Installers/Validate-PostgreSQL.ps1
Normal file
35
images/win/scripts/Installers/Validate-PostgreSQL.ps1
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
$PGUSER="postgres"
|
||||||
|
function Validate-PostgreSQL {
|
||||||
|
$pgready = Start-Process -FilePath pg_isready -Wait -PassThru
|
||||||
|
$exitCode = $pgready.ExitCode
|
||||||
|
if ($exitCode -eq 0)
|
||||||
|
{
|
||||||
|
Write-Host -Object "PostgreSQL has been successfully installed."
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Write-Host -Object "PostgreSQL is not ready. Exitcode: $exitCode"
|
||||||
|
exit $exitCode
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$paths = (Get-CimInstance Win32_Service -Filter "Name LIKE 'postgresql-%'").PathName
|
||||||
|
$pgservice = (Get-CimInstance Win32_Service -Filter "Name LIKE 'postgresql-%'").Name
|
||||||
|
$pgroot = $paths.split('"')[1].replace("\bin\pg_ctl.exe", "")
|
||||||
|
$psqlVersion = pg_config --version | Out-String
|
||||||
|
Validate-PostgreSQL
|
||||||
|
|
||||||
|
# Adding description of the software to Markdown
|
||||||
|
$SoftwareName = "PostgreSQL"
|
||||||
|
$Description = @"
|
||||||
|
_Version:_ $psqlVersion<br/>
|
||||||
|
_Default Path:_ $pgroot<br/>
|
||||||
|
_User:_ $env:PGUSER<br/>
|
||||||
|
_Password:_ $env:PGPASSWORD
|
||||||
|
"@
|
||||||
|
|
||||||
|
Add-SoftwareDetailsToMarkdown -SoftwareName $SoftwareName -DescriptionMarkdown $Description
|
||||||
|
|
||||||
|
#Stop and disable PostgreSQL service
|
||||||
|
Stop-Service -Name $pgservice
|
||||||
|
Set-Service $pgservice -StartupType Disabled
|
||||||
Reference in New Issue
Block a user