diff --git a/ansible/group_vars/all.yml b/ansible/group_vars/all.yml
index 4fcc9e2839..e5f5c69a9a 100644
--- a/ansible/group_vars/all.yml
+++ b/ansible/group_vars/all.yml
@@ -199,7 +199,7 @@ collectd_udp_port: "25826"
 
 designate_api_port: "9001"
 designate_bind_port: "53"
-designate_mdns_port: "5354"
+designate_mdns_port: "{{ '53' if designate_backend == 'infoblox' else '5354' }}"
 designate_rndc_port: "953"
 
 elasticsearch_port: "9200"
@@ -746,7 +746,7 @@ cloudkitty_collector_backend: "gnocchi"
 #######################
 # Designate options
 #######################
-# Valid options are [ bind9 ]
+# Valid options are [ bind9, infoblox ]
 designate_backend: "bind9"
 designate_ns_record: "sample.openstack.org"
 designate_backend_external: "no"
diff --git a/ansible/roles/designate/defaults/main.yml b/ansible/roles/designate/defaults/main.yml
index 2e1646c966..435ba663f5 100644
--- a/ansible/roles/designate/defaults/main.yml
+++ b/ansible/roles/designate/defaults/main.yml
@@ -175,3 +175,15 @@ designate_dnssec_validation: "yes"
 designate_recursion: "no"
 ## Example for designate_forwarders_addresses: "10.199.200.1; 10.199.100.1"
 designate_forwarders_addresses: ""
+
+####################
+# Infoblox
+####################
+designate_backend_infoblox_nameservers: ""
+designate_infoblox_host: ""
+designate_infoblox_wapi_url: ""
+designate_infoblox_ssl_verify: "true"
+designate_infoblox_auth_username: ""
+designate_infoblox_auth_password: ""
+designate_infoblox_multi_tenant: "false"
+designate_infoblox_ns_group: ""
diff --git a/ansible/roles/designate/handlers/main.yml b/ansible/roles/designate/handlers/main.yml
index eb9064fa09..5f6207f96a 100644
--- a/ansible/roles/designate/handlers/main.yml
+++ b/ansible/roles/designate/handlers/main.yml
@@ -149,6 +149,7 @@
       or designate_rndc_key_file.changed | bool
       or policy_overwriting.changed | bool
       or designate_worker_container.changed | bool
+      or designate_pool.changed | bool
 
 - name: Restart designate-sink container
   vars:
diff --git a/ansible/roles/designate/templates/pools.yaml.j2 b/ansible/roles/designate/templates/pools.yaml.j2
index 02a1291049..eddbba77c7 100644
--- a/ansible/roles/designate/templates/pools.yaml.j2
+++ b/ansible/roles/designate/templates/pools.yaml.j2
@@ -52,4 +52,37 @@
         rndc_key_file: /etc/designate/rndc.key
 {% endfor %}
 {% endif %}
+{% elif designate_backend == 'infoblox' %}
+- name: infoblox
+  id: {{ designate_pool_id }}
+  description: Default Infoblox Pool
+  attributes:
+    internal: true
+  ns_records:
+    - hostname: {{ designate_ns_record }}.
+      priority: 1
+  nameservers:
+{% for host in designate_backend_infoblox_nameservers.replace(" ", "").split(',') %}
+    - host: {{ host }}
+      port: {{ designate_bind_port }}
+{% endfor %}
+  targets:
+    - type: infoblox
+      description: Default Infoblox Pool
+      masters:
+{% for mdns_host in groups['designate-mdns'] %}
+        - host: {{ hostvars[mdns_host]['ansible_' + hostvars[mdns_host]['dns_interface']]['ipv4']['address'] }}
+          port: {{ designate_mdns_port }}
+{% endfor %}
+      options:
+        host: {{ designate_infoblox_host }}
+        port: 53
+        http_pool_maxsize: 100
+        http_pool_connections: 100
+        wapi_url: {{ designate_infoblox_wapi_url }}
+        sslverify: {{ designate_infoblox_ssl_verify }}
+        username: {{ designate_infoblox_auth_username }}
+        password: {{ designate_infoblox_auth_password }}
+        multi_tenant: {{ designate_infoblox_multi_tenant }}
+        ns_group: {{ designate_infoblox_ns_group }}
 {% endif %}