administration systÈme, dÉploiement

38
ADMINISTRATION SYSTÈME, DÉPLOIEMENT ET SURVEILLANCES DE LOGICIELS DANS UN RÉSEAU DE CAPTEURS ROUILLÉ GUILLAUME CAPRONNIER EYMERIC AHOUASSOU LORIS MERTZ THOMAS

Upload: others

Post on 31-May-2022

20 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ADMINISTRATION SYSTÈME, DÉPLOIEMENT

ADMINISTRATION SYSTÈME, DÉPLOIEMENT ET SURVEILLANCES DE LOGICIELS DANS UN RÉSEAU DE CAPTEURS

ROUILLÉ GUILLAUME – CAPRONNIER EYMERIC – AHOUASSOU LORIS – MERTZ THOMAS

Page 2: ADMINISTRATION SYSTÈME, DÉPLOIEMENT

CONTEXTERappels des semestres précédents

ANSIBLE & CRONDescription détaillée du fonctionnement

RPI & CAPTEURSExplications sur l’intégration des capteurs

SITE WEBDéveloppement du travail réalisé

02

01

04

03

02

Page 3: ADMINISTRATION SYSTÈME, DÉPLOIEMENT

CONTEXTE

Création du site et du serveur, envoi & test du

premier code sur un Raspberry Pi

S6

Réflexion sur le projet, commandes de matériel & communication entre Arduino UNO et Raspberry Pi

De nombreux objectifs pour réaliser le projet

S7

S8

0103

Page 4: ADMINISTRATION SYSTÈME, DÉPLOIEMENT

LES OBJECTIFS DU SEMESTRE 8

Intégrer les capteurs au reste du projet en les

connectant aux Raspberry Pi

Envoyer et recevoir des données puis les afficher sous différentes formes

Permettre la communication entre le site et les Raspberry Pi

RASPBERRY PI & CAPTEURS SITE WEBANSIBLE & CRON

0401 | CONTEXTE

Page 5: ADMINISTRATION SYSTÈME, DÉPLOIEMENT

RASPBERRY PI &

CAPTEURS LORIS AHOUASSOU

0205

Page 6: ADMINISTRATION SYSTÈME, DÉPLOIEMENT

SEMESTRES 6 & 7

Tentative d’utilisation d’une Banana Pi en

routeur

Test du code reçu sur des LEDs branchées

sur Arduino UNO

Communication entre le Raspberry Pi

et l’Arduino UNO

COMMUNICATION SPI

BANANA PI ESSAI SUR DES LEDS

02 | RASPBERRY PI & CAPTEURS 06

Page 7: ADMINISTRATION SYSTÈME, DÉPLOIEMENT

OBJECTIFS DU SEMESTRE 8

Intégration des capteurs

Récupération des données et envoi au serveur

Automatisation d’upload de code

Fixation des capteurs aux ports USB

02 | RASPBERRY PI & CAPTEURS 07

Page 8: ADMINISTRATION SYSTÈME, DÉPLOIEMENT

INTÉGRATION DES CAPTEURS

LIAISON SÉRIE

CODE DISTANCE

CODE TEMPÉRATURE

HC-SR04

IDUINO LM35

02 | RASPBERRY PI & CAPTEURS 08

Page 9: ADMINISTRATION SYSTÈME, DÉPLOIEMENT

ENVOI DES DONNÉES AU SERVEURREQUÊTE POST

PYTHON SCRIPT DE RÉCUPÉRATION ET D’ENVOI

Port série : valeur du capteur

Adresse IP du Raspberry

Date & Heure

Numéro du capteur

02 | RASPBERRY PI & CAPTEURS 09

Page 10: ADMINISTRATION SYSTÈME, DÉPLOIEMENT

UPLOADAUTOMATISÉ

MAKEFILE GÉNÉRIQUE

capteurX-0 capteurX-1 capteurX-2

Arduino USB Arduino SPI Nucléo USB

02 | RASPBERRY PI & CAPTEURS 10

Page 11: ADMINISTRATION SYSTÈME, DÉPLOIEMENT

FIXATION D’UN CAPTEUR A UN PORT USB

ATTRIBUTS

N° de série

idVendor

idProduct

BASH SCRIPT

02 | RASPBERRY PI & CAPTEURS 11

Page 12: ADMINISTRATION SYSTÈME, DÉPLOIEMENT

ANSIBLE& CRON

EYMERIC CAPRONNIER & THOMAS MERTZ

0312

Page 13: ADMINISTRATION SYSTÈME, DÉPLOIEMENT

SEMESTRES 6 & 7

Exécution d’un code pour faire clignoter les LEDs sur Raspberry Pi

Test du code reçu sur des LEDs branchées sur

Arduino UNO

Communication entre le Raspberry Pi

et l’Arduino UNO

COMMUNICATION SPI

EXÉCUTION DE CODE ESSAI SUR DES LEDS

03 | ANSIBLE & CRON 13

Page 14: ADMINISTRATION SYSTÈME, DÉPLOIEMENT

OBJECTIFS DU SEMESTRE 8

Administration système

Déploiement de code

Gestion d’un large réseau de capteurs

Utilisation de Cron pour lancer le script Python

1403 | ANSIBLE & CRON

Page 15: ADMINISTRATION SYSTÈME, DÉPLOIEMENT

PRÉREQUIS POUR ANSIBLE

Nœud de contrôle

Python 3

sshpass

Ansible

Fichier .ssh/config

Nœuds gérés

Raspbian

Connexion Internet

Connexion SSH

Clé SSH du serveur

1503 | ANSIBLE & CRON

Page 16: ADMINISTRATION SYSTÈME, DÉPLOIEMENT

PRÉREQUIS POUR ANSIBLE

ENVOI DE LA CLÉ SSH D’UN NŒUD AU SERVEUR

1 2

Remplir le fichier

inventaire-rasp.ini

Lancer le script

setupRPI.sh

1603 | ANSIBLE & CRON

Page 17: ADMINISTRATION SYSTÈME, DÉPLOIEMENT

ROLES & PLAYBOOKS

4 ROLES

arduino_Setup

nucleo_Setup

arduino

nucleo

1 FICHIER INVENTAIRE

[arduino_Setup]

192.168.1.49 capteur=1-0 setup=1

[arduino]

192.168.1.49 capteur=1-0 ordre=0

192.168.1.50 capteur=1-0 ordre=0

1703 | ANSIBLE & CRON

Page 18: ADMINISTRATION SYSTÈME, DÉPLOIEMENT

ROLES & PLAYBOOKS

1803 | ANSIBLE & CRON

Page 19: ADMINISTRATION SYSTÈME, DÉPLOIEMENT

ROLES & PLAYBOOKS

SETUP D’UN ARDUINO UNO

INSTALLATION MISE EN PLACE

Config. GPIO

Python3 & Pip3

avrdude

gcc-avr

avr-libc

lxml

requests

pyserial

1903 | ANSIBLE & CRON

Page 20: ADMINISTRATION SYSTÈME, DÉPLOIEMENT

ROLES & PLAYBOOKS

LES COMMANDES ARDUINO UNO

ORDRE COMMANDE DÉTAIL DE LA COMMANDE

0 Envoi du code et lancement

• Envoi du fichier C• Envoi temps de Crontab• Lancement script de

compilation

1 Arrêt d’exécution du code(suppression Crontab) Lancement script d’arrêt

2 Suppression du capteur Suppression du dossier du capteur

2003 | ANSIBLE & CRON

Page 21: ADMINISTRATION SYSTÈME, DÉPLOIEMENT

ROLES & PLAYBOOKS

SCRIPT DE LANCEMENT DE LA COMPILATION

#!/bin/sh

kill $(cat /var/run/script.pid)

basedirname $0`

nohup=` $base/script.sh

2103 | ANSIBLE & CRON

Page 22: ADMINISTRATION SYSTÈME, DÉPLOIEMENT

ROLES & PLAYBOOKS

COMMANDE DE LANCEMENT ANSIBLE

ansible-playbook /path/to/the/file/MainTask.yml -i /path/to/the/file/inventaire.ini

2203 | ANSIBLE & CRON

Page 23: ADMINISTRATION SYSTÈME, DÉPLOIEMENT

CRON

23

NOTATION SIGNIFICATION

* A chaque unité de temps

5,8 Aux unités de temps 5 & 8

2-5 De l’unité de temps 2 à 5

*/3 Toutes les 3 unités de temps

10-20/3 Toutes les 3 unités entre les unités 10 & 20

03 | ANSIBLE & CRON

Page 24: ADMINISTRATION SYSTÈME, DÉPLOIEMENT

CRON

24

*/5 * * * * /home/pi/capteur1-0/python.sh /home/pi/capteur1-0

LIGNE DE CRONTAB

crontab -l | grep -v $pwd | crontab -

SUPPRESSION D’UNE LIGNE

(crontab -l ; echo "*/$tps * * * *$pwd/python.sh $pwd") | crontab -

AJOUT D’UNE LIGNE

03 | ANSIBLE & CRON

Page 25: ADMINISTRATION SYSTÈME, DÉPLOIEMENT

SITE WEBGUILLAUME ROUILLÉ

0425

Page 26: ADMINISTRATION SYSTÈME, DÉPLOIEMENT

SEMESTRES 6 & 7

Création des premières pages

du site web

Création d’un système de connexion

Création d’une base de données

PostgreSQL

Affichage de données de débogage

Création d’un formulaire et de fonctions d’envoi

BASE DE DONNÉES ENVOI DES CODES

SITE WEB AFFICHAGESYSTÈME DE COMPTES

04 | SITE WEB 26

Page 27: ADMINISTRATION SYSTÈME, DÉPLOIEMENT

OBJECTIFS DU SEMESTRE 8

Réception des valeurs des capteurs

Affichage & Recherches

Gestion des Raspberry Pi & des capteurs

Gestion des comptes

Envoi des données

04 | SITE WEB 27

Page 28: ADMINISTRATION SYSTÈME, DÉPLOIEMENT

RÉCEPTION DES DONNÉES

REQUÊTE POST

BDD FONCTION MAJ PHP & SQL

SITE AFFICHAGE

Valeur du capteur

Adresse IP du Raspberry

Date & Heure

Numéro du capteur

04 | SITE WEB 28

Page 29: ADMINISTRATION SYSTÈME, DÉPLOIEMENT

AFFICHAGE BRUT

NOM RASPBERRY TYPE VALEUR UNITÉ ACTION

Fusion 172.26.145.112 Distance 12,7 cm

Atmos 172.26.145.113 Température 22,1 °C

Solaris 172.26.145.111 Distance 15,4 cm

SITE RAFFRAICHISSEMENT

Arrêter

Arrêter

Arrêter

04 | SITE WEB 29

Page 30: ADMINISTRATION SYSTÈME, DÉPLOIEMENT

AFFICHAGE GRAPHIQUE

Nom du capteur

Intervalle de dates

Nombre de résultats

Fonctions PHP & SQL

Bibliothèque JpGraphe

04 | SITE WEB 30

Page 31: ADMINISTRATION SYSTÈME, DÉPLOIEMENT

SYSTÈME DE RECHERCHES

REQUÊTE POST

BDD FONCTION PHP & SQL

SITE AFFICHAGE BRUT

SITE FORMULAIRE

Nom du capteur

Type de capteur

Raspberry Pi

Intervalle de dates

Nombre de résultats

04 | SITE WEB 31

Page 32: ADMINISTRATION SYSTÈME, DÉPLOIEMENT

GESTION DES RASPBERRY PI

REQUÊTE POST

BDD FONCTION PHP & SQL

SITE FORMULAIRES

Adresse IP

Génération du fichier .ini

Ajout ou suppression

Vérifications

Lancement d’AnsibleSITE AFFICHAGE PROTOCOLE

04 | SITE WEB 32

Page 33: ADMINISTRATION SYSTÈME, DÉPLOIEMENT

GESTION DES CAPTEURS

REQUÊTE POST

BDD FONCTION PHP & SQL

SITE FORMULAIRES

Nom

Type

Raspberry Pi

Unité de mesure

Mode de connexion

Génération du fichier .ini

Ajout ou suppression

Vérifications

Lancement d’Ansible

04 | SITE WEB 33

Page 34: ADMINISTRATION SYSTÈME, DÉPLOIEMENT

GESTION DES COMPTES

REQUÊTE POST

BDD FONCTION PHP & SQL

SITE FORMULAIRES

Nom & Prénom

Groupe

Identifiant

Mot de passe

Hachage du mot de passe

Ajout ou suppression

Vérifications

04 | SITE WEB 34

Page 35: ADMINISTRATION SYSTÈME, DÉPLOIEMENT

ENVOI DES DONNÉES

REQUÊTE POST

BDD FONCTION PHP & SQL

SITE FORMULAIRE

Sélection de capteurs

Fichier C Génération du fichier .ini

Upload du fichier C

Vérifications

Lancement d’AnsibleSITE AFFICHAGE DONNÉES DE DEBUG

04 | SITE WEB 35

Page 36: ADMINISTRATION SYSTÈME, DÉPLOIEMENT

AFFICHAGE DE L’ENSEMBLE DU RÉSEAU

Un tableau par Raspberry Pi

Affichage graphique

Visualisation du réseau complet

Fonctions PHP & SQL

04 | SITE WEB 36

Page 37: ADMINISTRATION SYSTÈME, DÉPLOIEMENT

CONCLUSION

Page 38: ADMINISTRATION SYSTÈME, DÉPLOIEMENT

MERCI !Avez-vous des questions ?