Outils pour utilisateurs

Outils du site


admin:services:re2o

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
admin:services:re2o [2017/11/20 07:53] – créée chiracadmin:services:re2o [2017/11/20 08:09] (Version actuelle) chirac
Ligne 1: Ligne 1:
 ======== Re2o ======== ======== Re2o ========
  
 +Soft inter asso de gestion users et reseau. Cf [[https://slides.rezometz.org/re2o.html]]
  
 +===== Utilité pour federez =====
  
 +L'ancien webldap (en django également) a rendu de très grand services, mais il fallait le maintenir. Autre problème, il n'utilisait pas les models, il fallait tout coder à la main dans les views, ce qui faisait que chaque fonctionnalité nécessitait beaucoup de code.
  
-==== Migration depuis l'ancien ldap ====+L'idée d'utiliser une instance de re2O est déjà de ne plus avoir à maintenir un webldap, mais surtout d'avoir plus de fonctionnalités. (gestion des machines de federez, des assos, du dns, etc etc)
  
-Les anciennes données étaient dans l'ancien ldap sur dodecagon, il a été nécessaire de transéferer tout le monde. Pour info, voici comment on a procédé : +===== Instalation ===== 
 + 
 +==== Démarrage ==== 
 + 
 +Sur dodecagon :  
 +Suivre le readme.sh; on aurait pu utiliser le script d'install auto, mais on a fait les choses à la main ici. 
 + 
 +On clone le dépot [[https://gitlab.federez.net/federez/re2o.git]] dans /var/www/re2o. 
 + 
 +On installe toutes les dépendances avec apt et pip3, suivre le readme pour cela :  
 + 
 +<code> 
 +apt install python3-django python3-dateutil texlive-latex-base texlive-fonts-recommended python3-djangorestframework python3-django-reversion python3-pip libsasl2-dev libldap2-dev libssl-dev 
 + 
 +pip3 install django-bootstrap3 django-ldapdb django-macaddress 
 +</code> 
 + 
 +==== Bdd ====  
 + 
 +On choisi mysql en local comme base de donnée django. On initialise la bdd : 
 + 
 +<code> 
 +apt install python3-mysqldb mysql-client 
 + 
 +CREATE DATABASE re2o collate='utf8_general_ci'; 
 +CREATE USER 're2o'@'localhost' IDENTIFIED BY 'password'; 
 +GRANT ALL PRIVILEGES ON re2o.* TO 're2o'@'localhost'; 
 +FLUSH PRIVILEGES; 
 +</code> 
 + 
 +==== Ldap ==== 
 + 
 +Vu qu'on migre depuis l'ancien, dans un premier temps on met le ldap sur un autre serveur (federez-test) puis on switchera après. L'installation du ldap est toujours la même, on copie schema.ldiff et db.ldiff depuis le depot. 
 +Ensuite on remplace dans les fichiers dc=example,dc=org par dc=federez, dc=net, ainsi que FILL_IT par le hash du mdp ldap qu'on choisi. 
 +On rajoute le ssl avec  
 +olcTLSCertificateKeyFile: /etc/letsencrypt/live/federez.net/privkey.pem 
 +olcTLSCACertificateFile: /etc/letsencrypt/live/federez.net/chain.pem 
 +olcTLSCertificateFile: /etc/letsencrypt/live/federez.net/cert.pem ` 
 +dans schema.db , enfin : 
 + 
 +<code> 
 +service slapd stop 
 +rm -rf /etc/ldap/slapd.d/
 +rm -rf /var/lib/ldap/
 +slapadd -n 0 -l schema.ldiff -F /etc/ldap/slapd.d/ 
 +slapadd -n 1 -l db.ldiff 
 +chown -R openldap:openldap /etc/ldap/slapd.d 
 +chown -R openldap:openldap /var/lib/ldap 
 +service slapd start 
 +</code> 
 + 
 +===== Configuration ===== 
 + 
 +On crée le settings_local.py, à partir de settings_local.example.py. On rempli le mdp bdd et ldap.  
 + 
 +On applique les migrations, python3 manage.py migrate, ça prend du temps. 
 + 
 +On crée un premier un super user avec python3 manage.py createsuperuser 
 + 
 +===== Serveur web ===== 
 + 
 +On utilise apache, voici la config : 
 + 
 +<code> 
 +<VirtualHost *:80> 
 +    ServerName re2o.federez.net 
 +    ServerAlias re2o webldap webldap.federez.net 
 + 
 +    Redirect "/" "https://re2o.federez.net/"     
 + 
 +</VirtualHost> 
 + 
 +<VirtualHost *:443> 
 +    ServerName re2o.federez.net 
 +    ServerAlias re2o webldap webldap.federez.net 
 + 
 +    LogLevel warn 
 +    ErrorLog ${APACHE_LOG_DIR}/re2o-error.log 
 +    CustomLog ${APACHE_LOG_DIR}/re2o-access.log combined 
 + 
 +    Alias /static /var/www/re2o/static_files 
 + 
 +    WSGIScriptAlias / /var/www/re2o/re2o/wsgi.py 
 +    WSGIProcessGroup re2o 
 +    WSGIDaemonProcess re2o processes=2 threads=16 maximum-requests=1000 display-name=re2o 
 + 
 +    SSLCertificateFile /etc/letsencrypt/live/federez.net/fullchain.pem 
 +    SSLCertificateKeyFile /etc/letsencrypt/live/federez.net/privkey.pem 
 +    Include /etc/letsencrypt/options-ssl-apache.conf 
 + 
 +</VirtualHost> 
 +</code> 
 + 
 +On peut à présent se connecter sur re2o.federez.net avec le compte qu'on a crée. 
 + 
 +===== Migration depuis l'ancien ldap ===== 
 + 
 +Les anciennes données étaient dans l'ancien ldap sur dodecagon, il a été nécessaire de transéferer tout le monde.  
 + 
 +On utilise python3-ldap3 pour chercher et trouver les informations dans le ldap. 
 + 
 +Pour info, voici comment on a procédé : 
  
  
 === Transfert des users === === Transfert des users ===
 <code> <code>
 +
 +from ldap3 import Server,Connection,ALL_ATTRIBUTES, ALL
  
 conn = Connection(server, 'cn=admin,dc=federez,dc=net', 'pkop', auto_bind=True) conn = Connection(server, 'cn=admin,dc=federez,dc=net', 'pkop', auto_bind=True)
admin/services/re2o.1511160796.txt.gz · Dernière modification : 2017/11/20 07:53 de chirac

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki