2016-07-07 10:32:16 +00:00
|
|
|
# Re2o
|
2016-07-07 10:28:20 +00:00
|
|
|
|
2016-07-31 10:20:28 +00:00
|
|
|
Gnu public license v2.0
|
|
|
|
|
2016-07-07 10:32:16 +00:00
|
|
|
## Avant propos
|
2016-07-07 10:28:20 +00:00
|
|
|
|
2017-10-02 22:47:56 +00:00
|
|
|
Re2o est un logiciel d'administration développé initiallement au rezometz. Il
|
|
|
|
se veut agnostique au réseau considéré, de manière à être installable en
|
|
|
|
quelques clics.
|
|
|
|
|
|
|
|
Il utilise le framework django avec python3. Il permet de gérer les adhérents,
|
|
|
|
les machines, les factures, les droits d'accès, les switchs et la topologie du
|
|
|
|
réseau.
|
|
|
|
De cette manière, il est possible de pluguer très facilement des services
|
|
|
|
dessus, qui accèdent à la base de donnée en passant par django (ex : dhcp), en
|
|
|
|
chargeant la liste de toutes les mac-ip, ou la liste des mac-ip autorisées sur
|
|
|
|
le réseau (adhérent à jour de cotisation).
|
2016-07-07 10:28:20 +00:00
|
|
|
|
2017-11-07 00:50:51 +00:00
|
|
|
# Installation
|
2016-12-27 22:51:30 +00:00
|
|
|
|
2018-05-21 14:15:35 +00:00
|
|
|
Un tutoriel pour installer le projet est disponible [sur le wiki](https://gitlab.federez.net/federez/re2o/wikis/User%20Documentation/Quick%20Start).
|
2016-07-07 10:28:20 +00:00
|
|
|
|
2018-05-21 14:15:35 +00:00
|
|
|
# Installations Optionnelles
|
|
|
|
## Générer le schéma des dépendances
|
2016-12-27 23:43:30 +00:00
|
|
|
|
|
|
|
Pour cela :
|
|
|
|
* apt install python3-django-extensions
|
|
|
|
* python3 manage.py graph_models -a -g -o re2o.png
|
|
|
|
|
2016-12-27 22:51:30 +00:00
|
|
|
# Fonctionnement interne
|
2016-07-07 11:19:03 +00:00
|
|
|
|
2016-12-27 23:43:30 +00:00
|
|
|
## Fonctionnement général
|
|
|
|
|
2017-10-02 22:47:56 +00:00
|
|
|
Re2o est séparé entre les models, qui sont visible sur le schéma des
|
|
|
|
dépendances. Il s'agit en réalité des tables sql, et les fields etant les
|
|
|
|
colonnes.
|
|
|
|
Ceci dit il n'est jamais nécessaire de toucher directement au sql, django
|
|
|
|
procédant automatiquement à tout cela.
|
|
|
|
On crée donc différents models (user, right pour les droits des users,
|
|
|
|
interfaces, IpList pour l'ensemble des adresses ip, etc)
|
2016-12-27 23:43:30 +00:00
|
|
|
|
2017-10-02 22:47:56 +00:00
|
|
|
Du coté des forms, il s'agit des formulaire d'édition des models. Il
|
|
|
|
s'agit de ModelForms django, qui héritent des models très simplement, voir la
|
|
|
|
documentation django models forms.
|
2016-12-27 23:43:30 +00:00
|
|
|
|
|
|
|
Enfin les views, générent les pages web à partir des forms et des templates.
|
|
|
|
|
2016-07-07 11:19:03 +00:00
|
|
|
## Fonctionnement avec les services
|
|
|
|
|
2016-12-27 23:43:30 +00:00
|
|
|
Les services dhcp.py, dns.py etc accèdent aux données via des vues rest.
|
2017-10-02 22:47:56 +00:00
|
|
|
Celles-ci se trouvent dans machines/views.py. Elles sont générées via
|
|
|
|
machines/serializers.py qui génère les vues. IL s'agit de vues en json utilisées
|
|
|
|
par re2o-tools pour récupérer les données.
|
|
|
|
Il est nécessaire de créer un user dans re2o avec le droit serveur qui permet
|
|
|
|
d'accéder à ces vues, utilisé par re2o-tools.
|
2016-12-27 23:43:30 +00:00
|
|
|
|
|
|
|
# Requète en base de donnée
|
|
|
|
|
|
|
|
Pour avoir un shell, il suffit de lancer '''python3 manage.py shell'''
|
2017-10-02 22:47:56 +00:00
|
|
|
Pour charger des objets, example avec User, faire :
|
|
|
|
''' from users.models import User'''
|
|
|
|
Pour charger les objets django, il suffit de faire User.objects.all()
|
|
|
|
pour tous les users par exemple.
|
|
|
|
Il est ensuite aisé de faire des requètes, par exemple
|
|
|
|
User.objects.filter(pseudo='test')
|
|
|
|
Des exemples et la documentation complète sur les requètes django sont
|
|
|
|
disponible sur le site officiel.
|