MAS migrations db librenms - CPNV-ES-MAS3-X/LibreNMS-Containerization GitHub Wiki

Marche à suivre: migration db librenms

0. prérequis

Avoir mariadb-client installé

1. exporter la db

Sur le serveur librenms, exporter la base de données librenms

Attention au droits de l'utilisateur employé

#mysqldump -u <utilisateur> -p <bd> > <fichier-a-exporter-sql>
sudo mysqldump -u librenms -p librenms > librenms-db-export.sql

Attention, ce fichier ne contient uniquement les données de la base.

2. création nouvelle db

Se connecter à l'instance mariadb sur le serveur docker

#mysql -h <ip-serveur-db> -P <port-serveur-db> --protocol=TCP -u <utilisateur> -p
mysql -h 10.10.10.179 -P 3306 --protocol=TCP -u root -p

Créer la base de donnée

CREATE DATABASE librenms;

3. importation des données

Importer les données de la base précédente dans la nouvelle

#mysql -h <ip-serveur-db> -u <utilisateur> -p <db> < <fichier-import-sql>
mysql -h 10.10.10.179 -u root -p librenms < librenms-db-export.sql

4. création utilisateur librenms

4.1 inspections ancien utilisateur

Les informations requises pour notre utilisateur sont consultable sous la base mysql

use mysql;
show columns from user;
select host,user from user;

output:

MariaDB [mysql]> select host,user from user;
+-----------+-------------+
| Host      | User        |
+-----------+-------------+
| %         | test        |
| %         | test2       |
| localhost | librenms    |
| localhost | mariadb.sys |
| localhost | mysql       |
| localhost | root        |
+-----------+-------------+
6 rows in set (0.002 sec)

Inspectons ses privilèges

#<user>@<host>
show grants for librenms@localhost;

output

+-----------------------------------------------------------------------------------------------------------------+
| Grants for librenms@localhost                                                                                   |
+-----------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO `librenms`@`localhost` IDENTIFIED BY PASSWORD '*0F3704CF78312459ABAEBE40557BFF7BFCB0A3EC' |
| GRANT ALL PRIVILEGES ON `librenms`.* TO `librenms`@`localhost`                                                  |
+-----------------------------------------------------------------------------------------------------------------+
2 rows in set (0.001 sec)

4.2 création nouvel utilisateur

Maintenant nous avons toutes les informations requises pour créer notre utilisateur adéquat

Créer un nouvel utilisateur en utilisant le hash du mot de passe.

create user [email protected] identified by password '*0F3704CF78312459ABAEBE40557BFF7BFCB0A3EC'

Ici nous avons créer un utilisateur librenms qui ne sera utilisable que par le serveur avec l'IP indiquer ci dessus

Application des droits d'accès et privilèges

GRANT USAGE ON librenms.* TO [email protected] IDENTIFIED BY PASSWORD '*0F3704CF78312459ABAEBE40557BFF7BFCB0A3EC';
GRANT ALL PRIVILEGES ON `librenms`.* TO `librenms`@`10.10.10.32`;

Appliquer les changements de privilèges

flush privileges;

5. appliquer nouvel db

Sur le serveur librenms, modifier le fichier .env avec l'utilisateur librenms en ajoutant les informations de connections requis

...
DB_HOST=10.10.10.179
DB_DATABASE=librenms
DB_USERNAME=librenms
DB_PASSWORD=Pa$$w0rd
...

6. script

Le script ci dessous regroupe tous les points ci-dessus

contenu script sh

#! /bin/bash

#Creation db et user
mysql -h 10.10.10.179 -u root -p librenms < librenms-database.sql
#Importation donnees
mysql -h 10.10.10.179 -u root -p librenms < librenms-data.sql

Contenu du script sql

CREATE DATABASE librenms;
CREATE USER [email protected] identified by password '*0F3704CF78312459ABAEBE40557BFF7BFCB0A3EC';
GRANT USAGE ON librenms.* TO [email protected] IDENTIFIED BY PASSWORD '*0F3704CF78312459ABAEBE40557BFF7BFCB0A3EC';
GRANT ALL PRIVILEGES ON `librenms`.* TO `librenms`@`10.10.10.32`;
FLUSH PRIVILEGES;
⚠️ **GitHub.com Fallback** ⚠️