Vous n'êtes pas identifié(e).
Bonjour un nouveau petit souci suite à une nouvelle installation
PostgreSQL streaming: FAILED (fe_sendauth: no password supplied)
apriori mon
vi /var/lib/barman/.pgpass
192.168.103.191:5432:postgres:barman:barman
192.168.103.191:5432:replication:barman:barman
avec chmod 600
vi /app/pgsql/10/data/pg_hba.conf
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all peer
# IPv4 local connections:
host all barman 127.0.0.1/32 md5
host all all 192.168.103.191/32 trust
host all postgres 192.168.103.191/32 trust
host all barman 192.168.103.191/32 md5
# IPv6 local connections:
host all all ::1/128 ident
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local replication all peer
#host replication all 127.0.0.1/32 ident
#host replication all ::1/128 ident
host replication postgres 192.168.103.191/32 md5
host replication postgres 127.0.0.1/0 trust
log barman:
2018-07-24 11:41:02,101 [23431] barman.postgres WARNING: Error retrieving PostgreSQL status: fe_sendauth: no password supplied
2018-07-24 11:41:02,102 [23431] barman.server ERROR: ArchiverFailure:failed opening the PostgreSQL streaming connection for server
echange de clee ssh fait
la connexion ainsi fonctionne :
psql -c 'SELECT version()' -U barman -h 192.168.103.191 -d postgres
version
---------------------------------------------------------------------------------------------------------
PostgreSQL 10.4 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-28), 64-bit
(1 row)
psql -c 'SELECT version()' -U barman -h nomduserveur -d postgres
version
---------------------------------------------------------------------------------------------------------
PostgreSQL 10.4 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-28), 64-bit
(1 row)
je vous avoue je sèche j avais fait une bonne doc lors de mes précédentes installation mais j'ai beau chercher je trouve pas
dernier point je ne peux pas creer "barman receive-wal --create-slot"
ERROR: Cannot connect to server
Dernière modification par alpi45 (24/07/2018 11:54:08)
Hors ligne
Lorsque vous utilisez psql, est-ce qu'il vous demande le mot de passe ?
Guillaume.
Hors ligne
non pas de mot de passe demandé
Hors ligne
Donc ça laisse supposer que le fichier .pgpass est utilisé par psql. Mais pas par barman. En supposant que la commande psql a été lancée par l'utilisateur Unix barman, peut-être est-dû au fait que replication est une "pseudo base". Il faudrait essayer en modifiant le fichier .pgpass pour remplacer le nom de la base par *.
Guillaume.
Hors ligne
effectivement mon .pgpass n'est pas utilisé ni par barman ni par postgres
mv /var/lib/barman/.pgpass /var/lib/barman/pgpass.old
[root@es7-stkw-dev ~]# systemctl restart postgresql-10.service
[root@es7-stkw-dev ~]# psql -c 'SELECT version()' -U barman -h XXXXXXX -d postgres
version
---------------------------------------------------------------------------------------------------------
PostgreSQL 10.4 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-28), 64-bit
(1 row)
[root@es7-stkw-dev ~]# psql -c 'SELECT version()' -U postgres -h XXXXXXX -d postgres
version
---------------------------------------------------------------------------------------------------------
PostgreSQL 10.4 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-28), 64-bit
(1 row)
la connexion ce fait toujours sans mot de passe
Hors ligne
Plusieurs choses...
1. Il n'est pas nécessaire de redémarrer PostgreSQL si vous modifiez votre fichier pgpass.
2. Vous êtes root. psql utilise donc le fichier pgpass de l'utilisateur Unix root (à priori /root/.pgpass). Du coup, vous pouvez faire ce que vous voulez dans /var/lib/barman, ça ne changera rien.
3. Donc connectez-vous en tant qu'utilisateur Unix barman. Configurez correctement votre fichier pgpass. Puis tentez de vous connecter à PostgreSQL avec psql.
Guillaume.
Hors ligne
je n'ai pas de fichier pgpass pour root
-bash-4.2$ pwd
/var/lib/barman
-bash-4.2$ vi .pgpass
-bash-4.2$ psql -c 'SELECT version()' -U barman -h es7-stkw-dev -d postgres
WARNING: password file "/var/lib/barman/.pgpass" has group or world access; permissions should be u=rw (0600) or less
version
---------------------------------------------------------------------------------------------------------
PostgreSQL 10.4 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-28), 64-bit
(1 row)
-bash-4.2$ psql -c 'SELECT version()' -U barman -h es7-stkw-dev -d postgres
version
---------------------------------------------------------------------------------------------------------
PostgreSQL 10.4 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-28), 64-bit
(1 row)
j'ai changé les droits chmod 600 sur pgpass mais j'ai toujours le même souci
2018-07-24 16:45:02,173 [12485] barman.postgres WARNING: Error retrieving PostgreSQL status: fe_sendauth: no password supplied
2018-07-24 16:45:02,174 [12485] barman.server ERROR: ArchiverFailure:failed opening the PostgreSQL streaming connection for server xxxxxxxxx
2018-07-24 16:45:02,181 [12486] barman.wal_archiver INFO: No xlog segments found from file archival for xxxxxxx.
2018-07-24 16:45:02,181 [12486] barman.wal_archiver INFO: No xlog segments found from streaming forxxxxxx
PostgreSQL: OK
is_superuser: OK
PostgreSQL streaming: FAILED (fe_sendauth: no password supplied)
wal_level: OK
replication slot: FAILED (replication slot 'barman_local' doesn't exist. Please execute 'barman receive-wal --create-slot XXXXXXX')
directories: OK
retention policy settings: OK
backup maximum age: OK (no last_backup_maximum_age provided)
compression settings: OK
failed backups: OK (there are 0 failed backups)
minimum redundancy requirements: FAILED (have 0 backups, expected at least 5)
ssh: OK (PostgreSQL server)
not in recovery: OK
archive_mode: OK
archive_command: OK
continuous archiving: OK
pg_receivexlog: OK
pg_receivexlog compatible: FAILED (PostgreSQL version: None, pg_receivexlog version: 10.4)
receive-wal running: FAILED (See the Barman log file for more details)
archiver errors: OK
Dernière modification par alpi45 (24/07/2018 17:20:42)
Hors ligne
Je viens de remarquer que vous n'avez pas de ligne "replication" pour votre utilisateur barman dans le pg_hba.conf. Il faudrait déjà corriger ça.
Guillaume.
Hors ligne
j'ai fais la modification mais pas mieux
J'arrive a me connecter sans pgpass avec le userbarman postgre ou root est ce normal ?? j'ai même supprimé le pgpass.
( sur mon autre serveur j'ai supprimé le pgpass il me demande le mot de passe)
cordialement
Dernière modification par alpi45 (25/07/2018 11:34:12)
Hors ligne
par contre la différence que je trouve
ici ça ne fonctionne pas
ALTER ROLE
postgres=# select usename, passwd is null from pg_shadow;
usename | ?column?
----------+----------
barman | f
postgres | f
(2 rows)
ici ça fonctionne ( autre serveur de test)
postgres=# select usename, passwd is null from pg_shadow;
usename | ?column?
----------+----------
postgres | t
barman | f
(2 rows)
j'ai fait le changement mes deux serveurs on la meme configuration
sur le serveur qui fonctionne
[root@postgre2 data]# ls -al /var/lib/barman/.pgpass
-rw------- 1 root root 126 Jul 16 10:58 /var/lib/barman/.pgpass
[root@postgre2 data]# su - barman
Last login: Wed Jul 25 12:03:48 CEST 2018 on pts/0
-bash-4.2$ psql -c 'SELECT version()' -U postgres -h postgre2 -d postgres
psql: FATAL: no pg_hba.conf entry for host "127.0.0.1", user "postgres", database "postgres", SSL off
-bash-4.2$ psql -c 'SELECT version()' -U barman -h postgre2 -d postgres
Password for user barman:
si je fais
psql -c 'SELECT version()' -U barman -h postgre2 -d postgres
j'ai forcement le mot de passe qui est demandé que je sois connecté en postgre ou barman ou root
sur mon serveur qui ne fonctionne pas
psql -c 'SELECT version()' -U postgres -h es7-stkw-dev -d postgres
lancé depuis root postgre ou barman ça ce connecte directement sans demande de mot de passe
je ne comprend pas comment c'est possible je n'ai meme pas de pgpass
les fichiers de configuration son similaire en tout point sauf pour le nom du serveur et l emplacement des fichiers
Dernière modification par alpi45 (25/07/2018 12:22:28)
Hors ligne
ok je pense avoir trouvé
mon répertoire d'install de barman avec les droits barman etait un sous repertoire /backup qui lui meme etait en 777 root
drwxrwxrwx. 4 root root 4096 Jul 25 16:05 backup
j ai recréé un répertoire un niveau au dessus donc dans /barman-save appliqué les bon droits et rappliquer la même conf j'ai effectivement rajouté la ligne réplication pour barman
PostgreSQL: OK
is_superuser: OK
PostgreSQL streaming: OK
wal_level: OK
replication slot: OK
directories: OK
retention policy settings: OK
backup maximum age: OK (no last_backup_maximum_age provided)
compression settings: OK
failed backups: OK (there are 0 failed backups)
minimum redundancy requirements: OK (have 0 backups, expected at least 0)
ssh: OK (PostgreSQL server)
not in recovery: OK
archive_mode: OK
archive_command: OK
continuous archiving: OK
pg_receivexlog: OK
pg_receivexlog compatible: OK
receive-wal running: OK
archiver errors: OK
Hors ligne
J'arrive a me connecter sans pgpass avec le userbarman postgre ou root est ce normal ?? j'ai même supprimé le pgpass.
Oui ça a l'air normal si les connexions viennent de 192.168.103.191 , et au passage le pg_hba.conf est illogique:
host all all 192.168.103.191/32 trust
host all postgres 192.168.103.191/32 trust
host all barman 192.168.103.191/32 md5
En 1ere ligne, ça dit "toute connexion venant de 192.168.103.191 est autorisée sans mot de passe, pour toute base (all) et pour tout utilisateur (all).
La 2eme ligne dit la même chose mais uniquement pour l'utilisateur postgres, sauf que le pg_hba.conf applique les règles dans l'ordre et donc la 1ere ligne gagnera toujours.
La 3eme dit que l'utilisateur barman doit envoyer son mot de passe (md5) sauf que pour les mêmes raisons cette ligne n'aura jamais aucun effet, la ligne 1 étant prioritaire.
@DanielVerite
http://blog-postgresql.verite.pro/
Hors ligne
Merci pour le votre retour j ai donc commenté la ligne all
bon finalement le probleme ne venait pas de la mais bien du pg_hba.conf du pgpass du barman.conf et du postgresql.conf
effectivement j utilisé soit le nom dns soit l'ip de la machine dans tout ces fichiers en mettant tout en localhost plus de souci
je pense qu'il est important de choisir une maniere ( ip,nom,localhost) et de faire dans tout les fichiers la meme configuration
cordialement
Dernière modification par alpi45 (30/07/2018 13:30:51)
Hors ligne