mirror of
https://github.com/actions/runner-images.git
synced 2025-12-12 12:06:59 +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 $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"
|
||||
apt-get install libpq-dev
|
||||
|
||||
echo "Install Postgresql Client"
|
||||
apt-get install postgresql-client
|
||||
#Verify that PostgreSQL is ready for accept incoming connections.
|
||||
# exit codes:
|
||||
# ready - 0
|
||||
# reject - 1
|
||||
# connection timeout - 2
|
||||
pg_isready
|
||||
|
||||
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":[
|
||||
"{{ template_dir }}/scripts/Installers/Install-7zip.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"scripts":[
|
||||
"{{ template_dir }}/scripts/Installers/Install-PostgreSQL.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
@@ -519,6 +525,12 @@
|
||||
"{{ template_dir }}/scripts/Installers/Install-MysqlCli.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"scripts":[
|
||||
"{{ template_dir }}/scripts/Installers/Validate-PostgreSQL.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"scripts":[
|
||||
|
||||
@@ -621,6 +621,12 @@
|
||||
"{{ template_dir }}/scripts/Installers/Install-Vcpkg.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"scripts":[
|
||||
"{{ template_dir }}/scripts/Installers/Install-PostgreSQL.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"scripts":[
|
||||
@@ -944,6 +950,12 @@
|
||||
"{{ template_dir }}/scripts/Installers/Validate-Vcpkg.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"scripts":[
|
||||
"{{ template_dir }}/scripts/Installers/Validate-PostgreSQL.ps1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"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