Tout comme nous avons fait en sorte que Mastodon
utilise l’installation de PostgreSQL
présente dans une jail dédié, nous allons faire en sorte que Peertube
(qui tourne déjà dans une jail), utilise la même installation de PostgreSQL
, afin de mutualiser les ressources.
Préparation sur la jail PostgreSQL
Nous devons préparer le terrain sur la jail PostgreSQL
en créant l’utilisateur peertube
, le rôle peertube
(dans PostgreSQL) et en autorisant les connexions venant de la jail Peertube
vers notre installation de PostgreSQL
.
Nous allons en fait suivre le début de l’article sur l’installation de peertube das une jail.
Création de l’utilisateur peertube
Nous allons utiliser la commande pw
pour créer notre utilisateur peertube
et son mot de passe
# pw useradd -n peertube -c "Peertube user" -s /bin/csh -m -w random
Password for 'peertube' is: <random generated password>
pensez à noter dans votre gestionnaire de mot de passe celui que le système a généré pour vous. Pour plus d’information sur la commande pw
, reférez vous à la page man de la commande pw(8)
si la commande pw
vous semble trop complexe, vous pouvez utiliser la commande interactive adduser
.
Création du rôle peertube
La base de donnée PostgreSQL
a besoin d’un rôle spécifique qui a accès aux tables peertube
.
root@postgres:~ # sudo -u postgres createuser -P peertube
Enter password for new role:
Enter it again:
$ sudo -u postgres createdb -O peertube peertube_prod
Tout comme pour le mot de passe de l’utilisateur, pensez à sauvegarder celui-ci dans votre gestionnaire de mot de passe. Nous avons créé le rôle, la base de donnée et donné les droits sur cette base à notre rôle. Et nous pouvons vérifier que tout c’est correctement déroulé :
# sudo -u postgres psql
psql (9.6.8)
Type "help" for help.
postgres=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
---------------------+----------+----------+---------+-------+-----------------------
mastodon_production | mastodon | UTF8 | C | C |
peertube_prod | peertube | UTF8 | C | C |
postgres | postgres | UTF8 | C | C |
template0 | postgres | UTF8 | C | C | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | C | C | =c/postgres +
| | | | | postgres=CTc/postgres
test_db | postgres | UTF8 | C | C |
(6 rows)
postgres=# \q
Autorisation de connexion à la base via le réseau
Tout comme nous l’avions fait pour mastodon
, nous allons donner un mot de passe au rôle peetube
et autoriser la connexion via le réseau à la base peertube_prod
.
Autoriser la connexion réseau à la base peertube_prod
Cela se trouve dans le fichier /var/db/postgresql/data96/pg_hba.conf
:
host peertube_prod peertube 192.168.12.0/24 md5
nous commençons par autoriser tout le réseau des jails 192.168.12.0/24
. Nous affinerons une fois que tout foncionnera comme prévu.
il faut bien sûr recharger posgresql
pour que les modifictions soient prises en compte.
# sudo -u postgres pg_ctl reload -D /var/db/postgres/data96/
server signaled
Sur la jail Peertube
Il est temps de vérifier que la connexion entre le deux jails se fait bien pour ce qui est de postgreSQL
: :
root@peertube:~ # psql -h 192.168.12.3 -d peertube_prod -U peertube
Password for user peertube:
psql (9.6.8)
Type "help" for help.
peertube_prod=> \q
root@peertube:~ #
On dirait que c’est gagné.
Migration de la base peertube
Arrêt de peertube
Pour éviter tout risque de modification de peertube
pendant la migration, nous allons en arrêter les processus :
root@peertube:~ # service peertube stop
Stopping peertube.
Waiting for PIDS: 6462.
Backup de la base de données peertube_prod
C’est une sauvegrade de la base de données qui va nous permettre la migration :
# sudo -u peertube pg_dump -Fc peertube_prod > /tmp/peertube_prod-2018-07-27.db
Copie sur la jail PostgreSQL
Il faut copier notre fichier de sauvegarde sur la jail postgres
:
# scp -P 2223 /tmp/peertube_prod-2018-07-27.db 192.168.12.3:/tmp/.
Import dans la base peertube_prod
sur la jail postgres
Et nous allons pouvoir procéder à l’import de notre sauvegarde dans la nouvelle base de données :
# su - peertube
# pg_restore -d peertube_prod /tmp/peertube_prod-2018-07-27.db
…
--
-- PostgreSQL database dump complete
--
il apparait que l’import se fait beaucoup plus rapidement s’il n’y a pas d’autres accès à la base. Je vous conseille d’arrêter mastodon
, le temps de l’import des données de peertube
Arrêt de postgreSQL
sur la jail peertube
root@peertube:~ # service postgresql stop
Changement de l’accès à la base de données
Il faut indiquer à peertube
les nouvelles coordonnées de la base de données.
|
|
Redémarrage de peertube
Et ensuite redémarrer peertube.
|
|
Si vous avez arrêté d’autres services clients de votre base postgreSQL
, pensez à les redémarrer à leur tour.
Il ne vous reste qu’à tester votre connexion à l’instance peertube
.
Conclusion
Nous avons mutualisé les ressources de PostgreSQL
en utilisant l’installation de la jail du même nom pour deux logiciels. Nous allons aussi pouvoir mutualiser la base de données redis
et sans doute mongodb
.
Cela complique un peu les installations des logiciels, mais cela diminue les ressources nécessaires pour les faire fonctionner.
Plus tard, quand nous seront sur de notre affaire, il sera possible de supprimer postgresql95-server
de la jail peertube
.