Contactez-nous
Kitpages
17 rue de la Frise
38000 Grenoble
tel : 04 58 00 33 81
Guide de survie pour postgres / docker / systemd
Introduction
Ce tuto permet d'installer une base postgres et quelque commandes de bases pour créer des users, des bases et configurer des accès.
Nous sommes partis sur les bases suivantes :
- Installation sur une Debian 8 (Jessie)
- Nous utilisons l'image officielle postgres sur le docker hub
- Nous lançons postgresql avec systemd
Installation avec docker
L'installation la plus simple est avec docker et systemd. Pour cela on a besoin de 2 fichiers :
- un fichier /lib/systemd/system/postgres.service qui indique à systemd comment lancer postgres
- un fichier /etc/sysconfig/postgres qui contient le passwd root de la base postgres dans un envfile docker (pour éviter que le password root de postgres se balade en clair dans un "ps -edf" sur le host.
Le fichier postgres.service :
[Unit] Description=Postgresql After=docker.service [Service] ExecStartPre=-/bin/bash -c 'mkdir -p /var/lib/postgres/data' ExecStartPre=-/usr/bin/docker kill postgres ExecStartPre=-/usr/bin/docker rm postgres ExecStart=/usr/bin/docker run \ -v /var/lib/postgres/data:/var/lib/postgresql/data \ --env-file=/etc/sysconfig/postgres \ --name postgres \ postgres ExecStop=/usr/bin/docker stop postgres [Install] WantedBy=multi-user.target
Le fichier /etc/sysconfig/postgres
POSTGRES_USER=root POSTGRES_PASSWORD=xxxx
Lancer et arrêter postgres
# à chaque changement de conf du fichier .service : systemctl daemon-reload # lancer postgres systemctl start postgres # arrêter postgres systemctl stop postgres # voir le status du postgres lancé systemctl status postgres
Créer un user pour une appli
pour créer un user sur la base postgres, vous pouvez utiliser la méthode suivante :
# entrer dans le docker de postgres docker exec -ti postgres /bin/bash # lancer psql (en user root => connexion auto sans passwd sur le user root de postgres) psql # les commandes SQL CREATE USER toto; CREATE DATABASE mydb; GRANT ALL PRIVILEGES ON DATABASE mydb TO toto; ALTER ROLE toto WITH PASSWORD 'xxxx'; # ressortir de psql : \q
Conclusion
Systemd et docker, c'est un peu une tuerie pour installer rapidement une appli. Ca vaut vraiment le coup de vous renseigner là dessus.
Si vous voyez des coquilles dans ce tuto ou si vous souhaitez le compléter, n'hésitez pas à écrire des commentaires.
Commentaires
Note : on ne peut plus ajouter de commentaire sur ce site