Table of Contents
Racktables
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'@'%';
