diff --git a/group_vars/ldap_server.yml b/group_vars/slapd.yml
similarity index 81%
rename from group_vars/ldap_server.yml
rename to group_vars/slapd.yml
index 7a52a6cab85d4f8a6edbcb9767771a0e715389d3..29aa1773266c73baf7812b67566b60c0e6875584 100644
--- a/group_vars/ldap_server.yml
+++ b/group_vars/slapd.yml
@@ -1,7 +1,6 @@
 ---
-
 glob_slapd:
-  master_ip: "{{ query('ldap', 'ipv4', 'tealc', 'adm') | first }}"
+  master_ip: "{{ query('ldap', 'ip', 'tealc', 'adm') | ipv4 | first }}"
   regex: "^(role:(dhcp|dns|dns-primary|dns-secondary|ftp|gitlab|miroir|ntp|pve|radius|backup)|ecdsa-sha2-nistp256:.*|ssh-(ed25519|dss|rsa):.*)$"
   replication_credentials: "{{ vault_ldap_replication_credentials }}"
   private_key: "{{ vault_ldap_private_keyƂ }}"
diff --git a/host_vars/daniel.adm.crans.org.yml b/host_vars/daniel.adm.crans.org.yml
index 6152f24cd27e766e6362e1280fca8644142ee3e4..6185fc51d563216e45cc65566c3618f2ae440400 100644
--- a/host_vars/daniel.adm.crans.org.yml
+++ b/host_vars/daniel.adm.crans.org.yml
@@ -1,5 +1,5 @@
 ---
 loc_slapd:
-  ip: "{{ query('ldap', 'ipv4', 'daniel', 'adm') | first }}"
+  ip: "{{ query('ldap', 'ip', 'daniel', 'adm') | ipv4 | first }}"
   replica: true
   replica_rid: 2
diff --git a/host_vars/jack.adm.crans.org.yml b/host_vars/jack.adm.crans.org.yml
index 896420ab4c16a6d9d595664c07e29c0cba0a02ea..6688778fd8743f60ed16f13b19523a93c452c41f 100644
--- a/host_vars/jack.adm.crans.org.yml
+++ b/host_vars/jack.adm.crans.org.yml
@@ -1,5 +1,5 @@
 ---
 loc_slapd:
-  ip: "{{ query('ldap', 'ipv4', 'jack', 'adm') | first }}"
+  ip: "{{ query('ldap', 'ip', 'jack', 'adm') | ipv4 | first }}"
   replica: true
   replica_rid: 3
diff --git a/host_vars/sam.adm.crans.org.yml b/host_vars/sam.adm.crans.org.yml
index ce52d174280dd8955f5e48bc2edf34350ada09de..e612aa73ba5d1977c0625c945ceb952179d98375 100644
--- a/host_vars/sam.adm.crans.org.yml
+++ b/host_vars/sam.adm.crans.org.yml
@@ -1,5 +1,5 @@
 ---
 loc_slapd:
-  ip: "{{ query('ldap', 'ipv4', 'sam', 'adm') | first }}"
+  ip: "{{ query('ldap', 'ip', 'sam', 'adm') | ipv4 | first }}"
   replica: true
   replica_rid: 1
diff --git a/host_vars/sputnik.adm.crans.org b/host_vars/sputnik.adm.crans.org
index 04c45b94e5bf099f7bd4c35094e845705d6ce139..2878a5780c0ce3ee4cdb26aea6b7cec14a69a7ec 100644
--- a/host_vars/sputnik.adm.crans.org
+++ b/host_vars/sputnik.adm.crans.org
@@ -1,5 +1,5 @@
 ---
 loc_slapd:
-  ip: "{{ query('ldap', 'ipv4', 'sputnik', 'adm') | first }}"
+  ip: "{{ query('ldap', 'ip', 'sputnik', 'adm') | ipv4 | first }}"
   replica: true
   replica_rid: 4
diff --git a/host_vars/tealc.adm.crans.org.yml b/host_vars/tealc.adm.crans.org.yml
index 8a6ac0ae4ef618c96a3705a59004f8480efb2fb1..0b449f7c46af66cc02f0fbc2baea06a5e660e0fa 100644
--- a/host_vars/tealc.adm.crans.org.yml
+++ b/host_vars/tealc.adm.crans.org.yml
@@ -2,5 +2,5 @@ loc_postgresql:
   version: 11
 
 loc_slapd:
-  ip: 172.16.10.1
+  ip: "{{ query('ldap', 'ip', 'tealc', 'adm') | ipv4 | first }}"
   replica: false
diff --git a/hosts b/hosts
index bc7e7eac4874818032c61ec7d294ee2dd3980903..960f7c88531a9fccb7578736edc3a8958b16fce0 100644
--- a/hosts
+++ b/hosts
@@ -61,7 +61,7 @@ irc.adm.crans.org
 [keepalived:children]
 routeurs_vm
 
-[ldap_server]
+[slapd]
 tealc.adm.crans.org
 sam.adm.crans.org
 daniel.adm.crans.org
diff --git a/lookup_plugins/ldap.py b/lookup_plugins/ldap.py
index 838c67b4a9c56a19fbfe60e315107688328d6333..3a77bfb34d1a09fc39576bc315f440e399b08eab 100644
--- a/lookup_plugins/ldap.py
+++ b/lookup_plugins/ldap.py
@@ -60,21 +60,6 @@ class LookupModule(LookupBase):
         result = [res.decode('utf-8') for res in result['ipHostNumber']]
         return result
 
-    def ipv4(self, host, vlan):
-        if isinstance(vlan, int):
-            network_query_id = self.base.search(f"ou=networks,{self.base_dn}", ldap.SCOPE_ONELEVEL, f"description={vlan}")
-            network_result = self.base.result(network_query_id)
-            vlan = network_result[1][0][1]['cn'][0].decode('utf-8')
-        if vlan == 'srv':
-            query_id = self.base.search(f"cn={host}.crans.org,cn={host},ou=hosts,{self.base_dn}", ldap.SCOPE_BASE)
-        else:
-            query_id = self.base.search(f"cn={host}.{vlan}.crans.org,cn={host},ou=hosts,{self.base_dn}", ldap.SCOPE_BASE)
-        result = self.base.result(query_id)
-        result = result[1][0][1]
-        result = [res.decode('utf-8') for res in result['ipHostNumber']]
-        result = [ res for res in result if type(ipaddress.ip_address(res)) is ipaddress.IPv4Address ]
-        return result
-
     def all_ip(self, host):
         """
         Retrieve all IP addresses of a device
@@ -156,8 +141,6 @@ class LookupModule(LookupBase):
             result = self.query(*terms[1:])
         elif terms[0] == 'ip':
             result = self.ip(*terms[1:])
-        elif terms[0] == 'ipv4':
-            result = self.ipv4(*terms[1:])
         elif terms[0] == 'all_ip':
             result = self.all_ip(*terms[1:])
         elif terms[0] == 'cn':
diff --git a/plays/slapd.yml b/plays/slapd.yml
index 60b55e61d2b574287ca383f4863f26fd58d742f8..eb805c1a7bc04c0f295d1ce43bbf04b1c6384b3f 100755
--- a/plays/slapd.yml
+++ b/plays/slapd.yml
@@ -1,6 +1,6 @@
 #!/usr/bin/env ansible-playbook
 ---
-- hosts: ldap_server
+- hosts: slapd
   vars:
     slapd: '{{ glob_slapd | default({}) | combine(loc_slapd | default({})) }}'
   roles: