diff --git a/group_vars/django_cas.yml b/group_vars/django_cas.yml
new file mode 100644
index 0000000000000000000000000000000000000000..859efff617ac5d91c495a1e01caf8036b4b146d0
--- /dev/null
+++ b/group_vars/django_cas.yml
@@ -0,0 +1,23 @@
+---
+glob_django_cas:
+  repo: 'http://gitlab.adm.crans.org/nounous/django-cas.git'
+  path: '/var/local/django-cas'
+  url:
+    - cas.crans.org
+    - cas.adm.crans.org
+    - login.crans.org
+    - login.adm.crans.org
+    - auth.crans.org
+    - auth.adm.crans.org
+  ldap:
+    dn: 'cn=Utilisateurs,dc=crans,dc=org'
+    password: "{{ vault_cas_ldap_password }}"
+    user: 'cn=cas,ou=service-users,dc=crans,dc=org'
+    server: 172.16.10.157
+  db:
+    host: tealc.adm.crans.org
+    password: "{{ vault_cas_database_password }}"
+  secret_key: "{{ vault_cas_secret_key }}"
+  reverse_proxy:
+    - '10.231.136.0/24'
+    - '2a0c:700:0:2::/64'
diff --git a/hosts b/hosts
index 068bb8d659e35d8acd15bd9445ccb0f77cc8408d..53dac242f18661f50376bba89dba071d08b3fbd5 100644
--- a/hosts
+++ b/hosts
@@ -22,6 +22,9 @@ reverseproxy
 [dhcp:children]
 routeurs_vm
 
+[django_cas]
+cas.adm.crans.org
+
 [dns_auth_master]
 silice.adm.crans.org
 
diff --git a/plays/cas.yml b/plays/cas.yml
index f9006c6cf4186c14f1da7080eceda2b6892cf5c1..a55a8ab1140a3d6c4c45c4104cc44170dc8f997a 100755
--- a/plays/cas.yml
+++ b/plays/cas.yml
@@ -2,9 +2,8 @@
 ---
 # Django CAS server
 
-- hosts: cas.adm.crans.org
+- hosts: django_cas
   vars:
-    cas_secret_key: "{{ vault_cas_secret_key }}"
-    cas_ldap_password: "{{ vault_cas_ldap_password }}"
-    cas_database_password: "{{ vault_cas_database_password }}"
-  roles: ["django-cas"]
+    django_cas: "{{ glob_django_cas | default({}) | combine(loc_django_cas | default({})) }}"
+  roles:
+    - django-cas
diff --git a/roles/django-cas/README.md b/roles/django-cas/README.md
index 6b9b47c5a55dbebdd4426148d054be4d4c511f3c..e7ca8006a30d577d4f1ecf8f408167771c1e6381 100644
--- a/roles/django-cas/README.md
+++ b/roles/django-cas/README.md
@@ -1,3 +1,21 @@
 # Django CAS
 
-Une fois le rôle appliqué il faut aller dans `/var/local/django-cas` et faire un `./manage.py collectstatic`.
+Une fois le rôle appliqué il faut aller dans django_cas.path et faire un `./manage.py collectstatic`.
+
+## Variables
+
+On rassemble dans le dictionnaire django_cas toutes les variables liées au déploiement du cas. Voici une liste exhaustive des paramètres à définir :
+
+  - repo : Endroit d'où cloner les sources. Par défaut au crans, on utilise le dépôt : https://gitlab.crans.org/nounous/django-cas.git
+  - path : Là où on va installer le logiciel.
+  - url : Une liste d'url qui vont servir le cas
+  - ldap : dictionnaire qui configure la discussion avec le ldap
+    - dn : nom derrière lequel sont stockés les utilisateurs dans le ldap
+    - password : mot de passe de connection au ldap
+    - user : utilisateur avec lequel on se connecte
+    - server : serveur sur lequel le ldap est situé
+  - db : dictionnaire qui configure la discussion avec la base de données
+    - host : l'hôte sur lequel la base de données se trouve
+    - password : mot de passe d'accès
+  - secret_key : le secret de django_cas
+  - reverse_proxy : liste optionnelle permettant de faire tourner le cas derrière un reverse proxy tout en gardant les informations de connection originales de l'utilisateur. Il doit contenir la liste d'ip du reverse-proxy avec lequel il se connectera au CAS.
diff --git a/roles/django-cas/tasks/main.yml b/roles/django-cas/tasks/main.yml
index 1d3b919ade3e0b821b30f3b26161c16d8a56175c..3b40472cd43f06852cd9ff4eefb6a3a55230d011 100644
--- a/roles/django-cas/tasks/main.yml
+++ b/roles/django-cas/tasks/main.yml
@@ -16,15 +16,16 @@
 
 - name: Clone Django CAS project repository
   git:
-    repo: http://gitlab.adm.crans.org/nounous/django-cas.git
-    dest: /var/local/django-cas
+    repo: '{{ django_cas.repo }}'
+    dest: '{{ django_cas.path }}'
+    force: yes
     version: master
     umask: '002'
 
 - name: Configure Django CAS
   template:
     src: cas/settings_local.py.j2
-    dest: /var/local/django-cas/cas/settings_local.py
+    dest: '{{ django_cas.path }}/cas/settings_local.py'
     mode: 0600
     owner: www-data
   notify: Restart uwsgi
diff --git a/roles/django-cas/templates/cas/settings_local.py.j2 b/roles/django-cas/templates/cas/settings_local.py.j2
index 5ae99cf1907ee9c966dd6e89f3d97046a5b2a044..484276d8ab5e0cce36314e715cc8a53041c3b99c 100644
--- a/roles/django-cas/templates/cas/settings_local.py.j2
+++ b/roles/django-cas/templates/cas/settings_local.py.j2
@@ -1,20 +1,20 @@
 {{ ansible_header | comment }}
 
-SECRET_KEY = '{{ cas_secret_key }}'
+SECRET_KEY = '{{ django_cas.secret_key }}'
 
 # Settings for the CAS server
-CAS_LDAP_SERVER = "172.16.10.90"
-CAS_LDAP_USER = "cn=cas,ou=service-users,dc=crans,dc=org"
-CAS_LDAP_PASSWORD = "{{ cas_ldap_password }}"
-CAS_LDAP_BASE_DN = "cn=Utilisateurs,dc=crans,dc=org"
+CAS_LDAP_SERVER = "{{ django_cas.ldap.server }}"
+CAS_LDAP_USER = "{{ django_cas.ldap.user }}"
+CAS_LDAP_PASSWORD = "{{ django_cas.ldap.password }}"
+CAS_LDAP_BASE_DN = "{{ django_cas.ldap.dn }}"
 
 # Database
 DATABASES = {
     'default': {
         'ENGINE': 'django.db.backends.postgresql_psycopg2',
         'NAME': 'cas',
-        'HOST': 'pgsql.adm.crans.org',
+        'HOST': '{{ django_cas.db.host }}',
         'USER': 'cas',
-        'PASSWORD': '{{ cas_database_password }}',
+        'PASSWORD': '{{ django_cas.db.password }}',
     }
 }
diff --git a/roles/django-cas/templates/cron.d/cas.j2 b/roles/django-cas/templates/cron.d/cas.j2
index 0fd4795d6532f8716531f58759e738f4cc1a4aef..b0b6292de9f3fe7ac5040af4021cbad42d93f904 100644
--- a/roles/django-cas/templates/cron.d/cas.j2
+++ b/roles/django-cas/templates/cron.d/cas.j2
@@ -1,4 +1,4 @@
 {{ ansible_header | comment }}
-0   0  * * * www-data /var/local/django-cas/manage.py clearsessions
-*/5 *  * * * www-data /var/local/django-cas/manage.py cas_clean_tickets
-5   0  * * * www-data /var/local/django-cas/manage.py cas_clean_sessions
+0   0  * * * www-data {{ django_cas.path }}/manage.py clearsessions
+*/5 *  * * * www-data {{ django_cas.path }}/manage.py cas_clean_tickets
+5   0  * * * www-data {{ django_cas.path }}/manage.py cas_clean_sessions
diff --git a/roles/django-cas/templates/nginx/sites-available/cas.j2 b/roles/django-cas/templates/nginx/sites-available/cas.j2
index c243822e7c4092d0f60072b28f61ad7db200d53d..2372ae9260c51c3f34d2443c637371a211eb5530 100644
--- a/roles/django-cas/templates/nginx/sites-available/cas.j2
+++ b/roles/django-cas/templates/nginx/sites-available/cas.j2
@@ -1,7 +1,7 @@
 {{ ansible_header | comment }}
 
 server {
-     server_name cas.crans.org cas.adm.crans.org login.crans.org login.adm.crans.org auth.crans.org auth.adm.crans.org;
+     server_name {{ django_cas.url | join(' ') }};
      listen 80;
      listen [::]:80;
 
@@ -11,11 +11,12 @@ server {
      }
 
      location /static {
-         alias /var/local/django-cas/cas/local_static;
+         alias {{ django_cas.path }}/cas/local_static;
      }
 
-     set_real_ip_from 10.231.136.0/24;
-     set_real_ip_from 2a0c:700:0:2::/64;
+{% for ip in django_cas.reverse_proxy | default([]) %}
+     set_real_ip_from {{ ip }};
+{% endfor %}
      real_ip_header P-Real-Ip;
 
      location / {
diff --git a/roles/django-cas/templates/update-motd.d/05-service.j2 b/roles/django-cas/templates/update-motd.d/05-service.j2
index 242bc2caf02799a49661c811768270e7e3117947..8a0f3b389599e780a794aa5f2c0cd2b3e5f012b2 100755
--- a/roles/django-cas/templates/update-motd.d/05-service.j2
+++ b/roles/django-cas/templates/update-motd.d/05-service.j2
@@ -1,3 +1,3 @@
 #!/usr/bin/tail +14
 {{ ansible_header | comment }}
-> django-cas-server a été déployé sur cette machine. Voir /var/local/django-cas/.
+> django-cas-server a été déployé sur cette machine. Voir {{ django_cas.path }}.
diff --git a/roles/django-cas/templates/uwsgi/apps-available/cas.ini.j2 b/roles/django-cas/templates/uwsgi/apps-available/cas.ini.j2
index 7ec928041916bf200963d03cf89aa2206523da44..3055665b24238f78996256ea23ccfa5f20a394eb 100644
--- a/roles/django-cas/templates/uwsgi/apps-available/cas.ini.j2
+++ b/roles/django-cas/templates/uwsgi/apps-available/cas.ini.j2
@@ -2,8 +2,8 @@
 
 [uwsgi]
 plugin = python3
-chdir = /var/local/django-cas/
-wsgi-file = /var/local/django-cas/cas/wsgi.py
+chdir = {{ django_cas.path }}/
+wsgi-file = {{ django_cas.path }}/cas/wsgi.py
 max-request=50
 cheaper = 1
 cheaper-initial = 1