Add support for Infoblox in Designate role

This change adds support for Infoblox as a backend for Designate.

Change-Id: I7ae038befa88f5a1b3a1187a0e9037ed30f94b17
This commit is contained in:
Scott Solkhon 2019-01-22 14:17:54 +00:00
parent 2674344bbe
commit 2520a421bc
4 changed files with 48 additions and 2 deletions

View File

@ -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"
@ -742,7 +742,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"

View File

@ -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: ""

View File

@ -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:

View File

@ -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 %}