PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 24/01/2021 23:10:51

zenzedoon
Membre

Installation Postgres avec powershell

Bonjour à tous,
Comme je suis nouveau dans ce forum je sais pas ou je dois inserer mon post exactement,
Mon probleme est que je voudrais utiliser powershell pour automatiser l'installation du postgreSQL sur une machine Windows server 2016 pour l'utiliser avec une application web,
mon probleme c'est : y a t il uun module powershell gratuit qui peut faciliter l'installation et sur tout la creation d'une base vide pour l'avoir utiliser avec mon appli.
je voudrais que ça soit sans le moindre intervention , et qu'il soit possible de le faire via ansible par exemple.

Hors ligne

#2 25/01/2021 08:33:12

rjuju
Administrateur

Re : Installation Postgres avec powershell

Bonjour,


je sais pas ou je dois inserer mon post exactement

la section "Général" convient, par contre un seul post suffit.  J'ai supprimé le 2nd.


Mon probleme est que je voudrais utiliser powershell pour automatiser l'installation du postgreSQL sur une machine Windows server 2016 pour l'utiliser avec une application web,
mon probleme c'est : y a t il uun module powershell gratuit qui peut faciliter l'installation et sur tout la creation d'une base vide pour l'avoir utiliser avec mon appli.
je voudrais que ça soit sans le moindre intervention , et qu'il soit possible de le faire via ansible par exemple.

Je n'ai pas la moindre idée de ce qu'est un module powershell.  Cela dit, l'installation de postgres est relativement simple à automatiser.  Vous pouvez soit télécharger l'installeur qui s'occupera de ça (mais attention il y a souvent des problèmes dus aux anti virus et autres), ou le faire à la main.

Pour cela il suffit de télécharger une archive contenant les binaire à l'adresse https://www.enterprisedb.com/download-p … l-binaries

Vous pouvez ensuite utiliser pg_ctl pour créer une nouvelle instance et créer un service (cf https://www.postgresql.org/docs/current … -ctl.html).

Hors ligne

#3 25/01/2021 08:54:48

ruizsebastien
Membre

Re : Installation Postgres avec powershell

Bonjour,

Voici un exemple d'installation (en complément des excellents conseils de ruju) en ligne de commande (ça date un peu pour les versions, mais il suffit d'adapter avec les versions récentes. La méthode est toujours la même) :

1)    Téléchargement :
Visual c++ 2013 64 bits :
https://www.microsoft.com/fr-fr/downloa … x?id=40784

PostgreSQL :
http://www.enterprisedb.com/products-se … ad#windows

Choisir l’installeur pour Windows x86-64.



2)    Installation :

Visual c++ 2013 64 bits :
Dans une fenêtre DOS, se placer à l’endroit où se trouve vcredist_x64.exe.
Lancer :
vcredist_x64.exe /install /quiet /norestart /log %TEMP%\vcredist_2013_x86.log

PostgreSQL :
Dans une fenêtre DOS, se placer à l’endroit où se trouve vcredist_x64.exe.
Lancer :
postgresql-9.5.3-1-windows-x64.exe  --mode unattended --extract-only 1 --disable-stackbuilder 1  --prefix C:\mon_repertoire_d_installation

Mise à jour du PATH :
Dans une fenêtre DOS :
setx PATH "%PATH%;mon_repertoire_d_installation\bin"

Dernière modification par ruizsebastien (25/01/2021 08:55:36)


Cordialement,

Sébastien.

Hors ligne

#4 25/01/2021 10:54:49

zenzedoon
Membre

Re : Installation Postgres avec powershell

Merci pour les réponses mais est ce que c''est possible de faire l'installation depuis powershell (logiquement c'est possbile) en plus j'ai besoin de lancer une commande powershell pour faire la creation d'une base vide pour mon appli.
Merci d'avance.

Hors ligne

#5 25/01/2021 12:17:28

rjuju
Administrateur

Re : Installation Postgres avec powershell

À priori vous pouvez lancer les commandes montrées par Sébastien depuis powershell en ajoutant un "&" (cf https://stackoverflow.com/questions/167 … and-quotes ).  Vu que vous utilisez à priori powershell, j'imagine que vous êtes plus à même d'adapter la procédure de Sébastien que nous.



Vous pouvez créer une base vide en utilisant l'outil createdb: https://www.postgresql.org/docs/current … atedb.html

Hors ligne

#6 25/01/2021 18:52:24

zenzedoon
Membre

Re : Installation Postgres avec powershell

pour l'installtion en mode script j'ai fait comme suit et ça marchait :
Import-Module Install-Postgres
Install-Postgres -User $pguser -Password $pgpassword -InstallerUrl $pgUrlInstaller -InstallPath $pgpathInstaller -DataPath $pgDataPath -Locale $pgLocale -Port $pgPort -ServiceName $pgServiceName
$Env:Path=$Env:Path+";c:\Program Files\PostgreSQL\13\bin\"
par contre j'ai besoin de scripter la creation d'une base db1 sans que powershell me prompte pour une mot de passe , j'ai essayé comme vous m'avez dit mais toujour il faut taper à la main le mot de pase:

C:\Program Files\PostgreSQL\13\bin>createdb.exe --username=pguser1 --no-password --password=pass001 namedb
Password:


--> et ça je voudrais pas que se produise vu que je veux tout automatiser .

Hors ligne

#7 25/01/2021 19:04:20

ruizsebastien
Membre

Re : Installation Postgres avec powershell

vous pouvez toujours essayer avec psql :
(exemple issue d'un script bash à adapter à powershell)

psql -d postgres -h localhost -p ${PORT} -U postgres --set ON_ERROR_STOP=on -w -S -c "ALTER ROLE postgres WITH PASSWORD '${PASSWORD_POSTGRES}';"

psql -d postgres -h localhost -p ${PORT} -U postgres --set ON_ERROR_STOP=on -w -S -c "create database ${BASE} ENCODING '${ENCODING}' LC_COLLATE '${LOCALE}' OWNER postgres;


Cordialement,

Sébastien.

Hors ligne

#8 25/01/2021 19:59:06

rjuju
Administrateur

Re : Installation Postgres avec powershell

zenzedoon a écrit :

pour l'installtion en mode script j'ai fait comme suit et ça marchait :
Import-Module Install-Postgres
Install-Postgres -User $pguser -Password $pgpassword -InstallerUrl $pgUrlInstaller -InstallPath $pgpathInstaller -DataPath $pgDataPath -Locale $pgLocale -Port $pgPort -ServiceName $pgServiceName
$Env:Path=$Env:Path+";c:\Program Files\PostgreSQL\13\bin\"
par contre j'ai besoin de scripter la creation d'une base db1 sans que powershell me prompte pour une mot de passe , j'ai essayé comme vous m'avez dit mais toujour il faut taper à la main le mot de pase:

C:\Program Files\PostgreSQL\13\bin>createdb.exe --username=pguser1 --no-password --password=pass001 namedb
Password:


--> et ça je voudrais pas que se produise vu que je veux tout automatiser .


L'option --password ne fait absolument pas ce que vous pensez.  En regardant l'aide de l'outil:

-W, --password               force password prompt

Est-ce que le mot de passe en question est contenu dans $pgpassword ?  Si oui, vous avez 2 moyens de fournir le mot de passe :

- créer un fichier .pgpass : https://www.postgresql.org/docs/current … gpass.html
- positionner la variable d'environnement PGPASSWORD : https://www.postgresql.org/docs/current … nvars.html


Sinon, vous pouvez tenter de modifier "Install-Postgres" pour configurer une connexion sans mot de passe dans certains cas.  Les options pour faire ça de manière sécurisée sous windows sont malheureusement assez limitées.  La documentation est disponible à https://www.postgresql.org/docs/current … thods.html

Hors ligne

Pied de page des forums