Git Product home page Git Product logo

mspr2-nester's Introduction

Le Nester (Serveur)

Objectif : Fournir une interface web pour superviser les harvesters (clients) et réaliser de la télémaintenance.

Fonctionnalités

Le Nester exploite plusieurs services pour effectuer ses différentes tâches. Il utilise Grafana pour offrir des tableaux de bord des différents harvesters, Flask pour fournir une interface web, et NoVNC pour intégrer un client VNC dans Flask, facilitant ainsi la télémaintenance.

Supervision avec Grafana

Les harvesters utilisent Prometheus pour collecter des données via un node_exporter, les écrire et les agréger dans une base de données TimescaleDB hébergée sur la machine SGDB.

Le Nester gère Grafana, permettant la connexion à cette base de données pour proposer des tableaux de bord des harvesters.

grafana_ansible/
│
├── playbook.yml                   # Playbook Ansible
└── install_grafana.sh             # Script d'installation

grafana_ansible/playbook.yml

Ce playbook installe Grafana et lance le service.

install_grafana.sh

Script qui installe Ansible si nécessaire, puis exécute le playbook.

Interface web avec Flask

Cette partie hérite directement de la MSPR1. Le projet Seahawks_Nester consiste en un serveur reverse TCP qui reçoit des connexions des harvesters et offre un contrôle sur ceux-ci.

nester_ansible/
│
├── files/
│   ├── app/
│       ├── config.env          # Variables d'environnement
│       ├── DockerFile          # Dockerfile du projet Seahawks Nester
│       ├── install.sh          # Script d'installation du Nester (configuration des vars, docker build...)
│       ├── requirements.txt    # Dépendances Python
│       ├── start.sh            # Script de lancement du projet
│       ├── update.sh           # Script de mise à jour du projet
│       ├── src/                # Application Flask 
│   └── nester.service          # Daemon pour lancer Nester
├── playbook.yml                # Playbook Ansible
└── install_nester.sh           # Script d'installation

nester_ansible/files/nester.service

Daemon qui lance, après le démarrage du réseau, le script start.sh dans /opt/nester avec les paramètres Docker.

nester_ansible/playbook.yml

Ce playbook installe les dépendances, copie le projet Seahawks Nester dans /opt/nester, construit l'image, crée le daemon et lance le service.

install_nester.sh

Script qui installe Ansible si nécessaire, puis lance le playbook.

Télémaintenance avec NoVNC

Un client NoVNC permet à l'interface du Nester d'ouvrir un popup avec un accès à distance à un harvester directement dans le navigateur.

novnc_ansible/
│
├── files/
│   └── novnc.service            # Daemon pour NoVNC
├── playbook.yml                 # Playbook Ansible
└── install_prometheus.sh        # Script d'installation

novnc_ansible/files/novnc.service

Daemon qui s'exécute après le démarrage du réseau et lance le binaire /opt/noVNC/utils/novnc_proxy.

grafana_ansible/playbook.yml

Ce playbook installe les dépendances, clone le git de NoVNC, le déplace dans /opt/noVNC, crée et lance le daemon.

install_prometheus.sh

Script qui installe Ansible si nécessaire, puis exécute le playbook.

Résumé des Services et Ports

  • Grafana : Port 3000
  • NoVNC : Port 6080 pour le client VNC
  • Nester: Port 8080 pour l'interface web et 5000 pour le reverse TCP

mspr2-nester's People

Contributors

cfo-clement avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.