MAS migrations db librenms - CPNV-ES-MAS3-X/LibreNMS-Containerization GitHub Wiki
Avoir mariadb-client installé
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.
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;
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
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)
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;
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
...
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;