User Tools

Site Tools


hebergement:racktables

Racktables

inlinetoc

Racktables est un outil conçu pour gérer les actifs des plate-formes. RackTables permet de gérer les ressources matérielles des documents, les adresses réseau, l'espace dans les racks, la configuration des réseaux et bien plus encore. RackTables nécessite :

  • Un serveur Web – Apache ou Nginx
  • PHP-FPM pour le front-end
  • Serveur de base de données MySQL/MariaDB pour les données back-end.

Installation de racktables

L'installation des paquets mysql-server php-mysql php-curl php-ldap ainsi que de l'extension pcntl sont requis.

apt-get install nginx libapache2-mod-php7.4 php7.4-gd php7.4-mysql php7.4-mbstring php7.4-bcmath php7.4-json php7.4-snmp

Créer un utilisateur et une base de donnée racktables dans mysql:

sudo mysql -u root -p
CREATE DATABASE racktables_db CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE USER racktables_user@localhost IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON racktables_db.* TO racktables_user@localhost;
quit

Décompresser l'archive tar.gz/zip dans le répertoire root du serveur (par exemple /var/www/html) et configurer le serveur pour utiliser le sous-répertoire wwwroot comme nouveau DocumentRoot. Alternativement, des liens symboliques vers wwwroot ou même vers index.php à partir d'un DocumentRoot existant sont également possibles et souvent conseillés. https://github.com/RackTables/racktables-contribs.git

Ouvrir l'URL RackTables configurée pour configurer et initialiser l'application.

On peut relancer le script d'installation en indiquant ?module=install:
http://127.0.0.1:8080/racktables/?module=install

Distribution Apache httpd UID:GID MySQL/MariaDB UNIX socket path
Fedora apache:apache /var/lib/mysql/mysql.sock
openSUSE wwwrun:www /var/run/mysql/mysql.sock
Ubuntu www-data:www-data /var/run/mysqld/mysqld.sock

Définir les autorisations secret.php à l'invite:

chown www-data:www-data /usr/local/www/racktables/wwwroot/inc/secret.php
chmod 400 /usr/local/www/racktables/wwwroot/inc/secret.php

Mise à niveau de RackTables

Sauvegarder la base de données avant de commencer la mise à niveau.

mysqldump --routines -u racktables_user -p racktables_db > dbexport.sql

Supprimer tous les fichiers existants sauf la configuration (le fichier inc/secret.php) et les plugins locaux (dans le répertoire plugins/).

Mettre le contenu de la nouvelle archive tar.gz/zip à l'endroit.

Ouvrir la page RackTables dans un navigateur. Le logiciel détectera l'incompatibilité de version et affichera un message indiquant de se connecter en tant qu'administrateur pour terminer la mise à niveau.

mysql -u root racktables_db < dbexport.sql

Plugins

Architecture des plugins

  • Nouvelle architecture: Chaque plugin doit résider dans son propre répertoire et contenir un fichier nommé plugin.php hébergeant certaines fonctions obligatoires.
  • Ancienne architecture: Les modules complémentaires sont placés directement dans le dossier plugins. Les fichiers doivent être nommés avec l'extension .php pour être chargés automatiquement. Les fichiers sont chargés par ordre alphabétique.

Référentiel racktables-contribs

Le référentiel racktables-contribs fourni des plugins offrant la possibilité d'ajouter des fonctionnalités à RackTables.

git clone https://github.com/RackTables/racktables-contribs.git

Plugin cablinplan

Il s'agit d'une extension RackTables pour afficher un plan de câblage schématique de tous objets dans le système.

Installer les prérequis

sudo apt install graphviz

Copier le fichier PHP dans le répertoire des plugins

sudo cp cablinplan.php /var/www/racktables/plugins/
sudo chmod 644 /var/www/racktables/plugins/cablinplan.php

Copier le fichier PNG dans le répertoire “pix” de l'instance RackTables

sudo cp cablinplan.png /var/www/racktables/pix/
sudo chmod 644  /var/www/racktables/pix/cablinplan.png

Plugin graphTopo

Installer les prérequis

sudo apt install graphviz python3-pip python3-mysqldb libgraphviz-dev

Ce plugin utilise la classe Image_GraphViz pour la création des graphes et leur visualisation avec les outils GraphViz:

wget http://pear.php.net/go-pear.phar
php go-pear.phar
pear install Image_GraphViz

Installer les pérequis dans requirements.txt:

cd racktables-contribs-master/python-graph-topology/
sudo pip3 install -r requirements.txt

Compiler le code python

python3 -m nuitka topoGen.py --nofollow-import-to=MySQLdb --nofollow-import-to=graphviz --nofollow-import-to=pydot --nofollow-import-to=time --nofollow-import-to =sys --nofollow-import-to=functools --nofollow-import-to=datetime --nofollow-import-to=pandas --nofollow-import-to=networkx --nofollow-import-to=opérateur --nofollow -import-to=itertools --nofollow-import-to=re --nofollow-import-to=matplotlib --nofollow-import-to=pyvis --follow-imports

Copier des fichiers (cela inclut le binaire généré à la deuxième étape):

sudo cp graph.php /var/www/racktables/plugins/
sudo cp topoGen.bin /var/www/racktables/plugins/
sudo cp settings.yml /var/www/racktables/plugins/
sudo cp logo.png /var/www/racktables/wwwroot/pix/
sudo cp not.gif /var/www/racktables/wwwroot/pix/
sudo cp js/ /var/www/racktables/plugins/ -r
sudo cp css/ /var/www/racktables/plugins/ -r

Créer le lien nécessaire pour que le fichier graph.php puisse accéder à topoGen.bin.

cd /var/www/racktables/wwwroot/
sudo sudo ln ../plugins/ . -s

Définir les autorisations nécessaires pour le stockage des topologies

cd /var/www/racktables/wwwroot/
sudo chown www-data:www-data pix/ -R
sudo chown www-data:www-data plugins/

Définir un utilisateur SQL en lecture seule:

create user 'viewRT'@'%' identified by 'viewRT';
grant select,lock tables,show view on racktables.* to 'viewRT'@'%';
hebergement/racktables.txt · Last modified: 2023/02/21 10:27 by 127.0.0.1