190 lines
5.1 KiB
Plaintext
190 lines
5.1 KiB
Plaintext
|
# This file is managed by Ansible, all changes will be lost
|
||
|
{% macro print_class(class) %}
|
||
|
{% if class.comment is defined and class.comment %}
|
||
|
# {{ class.comment }}
|
||
|
{% endif %}
|
||
|
class "{{ class.class }}" {
|
||
|
{% if class.options is defined and class.options %}
|
||
|
{{ class.options | indent(8,true) }}
|
||
|
{% endif %}
|
||
|
{% if class.include is defined and class.include %}
|
||
|
include "{{ class.include }}";
|
||
|
{% endif %}
|
||
|
}
|
||
|
{% if class.subclass is defined and class.subclass %}
|
||
|
|
||
|
{% for key, value in class.subclass.iteritems() %}
|
||
|
{% if value is defined and value %}
|
||
|
subclass "{{ class.class }}" "{{ key }}" {
|
||
|
{{ value | indent(8,true) }}
|
||
|
}
|
||
|
|
||
|
{% else %}
|
||
|
subclass "{{ class.class }}" {{ key }};
|
||
|
{% endif %}
|
||
|
{% endfor %}
|
||
|
{% endif %}
|
||
|
{% endmacro %}
|
||
|
{% macro print_group(group) %}
|
||
|
{% if group.comment is defined and group.comment %}
|
||
|
# {{ group.comment }}
|
||
|
{% endif %}
|
||
|
group {
|
||
|
{% if group.options is defined and group.options %}
|
||
|
{{ group.options | indent(8,true) }}
|
||
|
{% endif %}
|
||
|
{% if group.include is defined and group.include %}
|
||
|
include "{{ group.include }}";
|
||
|
{% endif %}
|
||
|
{% if group.groups is defined and group.groups %}
|
||
|
{% for group in group.groups %}
|
||
|
{{ print_group(group) | indent(8, true) }}
|
||
|
{% endfor %}
|
||
|
{% endif %}
|
||
|
{% if group.subnets is defined and group.subnets %}
|
||
|
{% for subnet in group.subnets %}
|
||
|
{{ print_subnet(subnet) | indent(8, true) }}
|
||
|
{% endfor %}
|
||
|
{% endif %}
|
||
|
{% if group.hosts is defined and group.hosts %}
|
||
|
{{ print_hosts(group.hosts) | indent(8, true) }}
|
||
|
{% endif %}
|
||
|
}
|
||
|
{% endmacro %}
|
||
|
{% macro print_subnet(subnet) %}
|
||
|
{% if subnet.comment is defined and subnet.comment %}
|
||
|
# {{ subnet.comment }}
|
||
|
{% endif %}
|
||
|
{% if subnet.ipv6 is defined and subnet.ipv6 %}
|
||
|
subnet6 {{ subnet.subnet }} {
|
||
|
{% else %}
|
||
|
subnet {{ subnet.subnet }} netmask {{ subnet.netmask }} {
|
||
|
{% endif %}
|
||
|
{% if subnet.routers is defined and subnet.routers %}
|
||
|
{% if subnet.routers is string %}
|
||
|
option routers {{ subnet.routers }};
|
||
|
{% else %}
|
||
|
option routers {{ subnet.routers | join(' ') }};
|
||
|
{% endif %}
|
||
|
{% endif %}
|
||
|
{% if subnet.options is defined and subnet.options %}
|
||
|
{{ subnet.options | indent(8,true) }}
|
||
|
{% endif %}
|
||
|
{% if subnet.include is defined and subnet.include %}
|
||
|
include "{{ subnet.include }}";
|
||
|
{% endif %}
|
||
|
{% if subnet.pools is defined and subnet.pools %}
|
||
|
{% for pool in subnet.pools %}
|
||
|
pool {
|
||
|
{% if pool.comment is defined and pool.comment %}
|
||
|
# {{ pool.comment }}
|
||
|
{% endif %}
|
||
|
{% if subnet.ipv6 is defined and subnet.ipv6 %}
|
||
|
range6 {{ pool.range }};
|
||
|
{% else %}
|
||
|
range {{ pool.range }};
|
||
|
{% endif %}
|
||
|
{% if pool.options is defined and pool.options %}
|
||
|
{{ pool.options | indent(16,true) }}
|
||
|
{% endif %}
|
||
|
{% if pool.include is defined and pool.include %}
|
||
|
include "{{ pool.include }}";
|
||
|
{% endif %}
|
||
|
}
|
||
|
{% endfor %}
|
||
|
{% endif %}
|
||
|
{% if subnet.hosts is defined and subnet.hosts %}
|
||
|
{{ print_hosts(subnet.hosts) | indent(8, true) }}
|
||
|
{% endif %}
|
||
|
}
|
||
|
{% endmacro %}
|
||
|
{% macro print_hosts(hosts) %}
|
||
|
{% if hosts is string %}
|
||
|
include "{{ hosts }}";
|
||
|
{% else %}
|
||
|
{% for host in hosts %}
|
||
|
{% if host.comment is defined and host.comment %}
|
||
|
# {{ host.comment }}
|
||
|
{% endif %}
|
||
|
host {{ host.hostname }} {
|
||
|
{% if host.options is defined and host.options %}
|
||
|
{{ host.options | indent(8,true) }}
|
||
|
{% endif %}
|
||
|
{% if host.ethernet is defined and host.ethernet %}
|
||
|
hardware ethernet {{ host.ethernet }};
|
||
|
{% endif %}
|
||
|
{% if host.address is defined and host.address %}
|
||
|
fixed-address {{ host.address }};
|
||
|
{% endif %}
|
||
|
}
|
||
|
{% endfor %}
|
||
|
{% endif %}
|
||
|
{% endmacro %}
|
||
|
|
||
|
{% if dhcpd_authoritative is defined and dhcpd_authoritative %}
|
||
|
authoritative;
|
||
|
|
||
|
{% elif dhcpd_authoritative is undefined or (dhcpd_authoritative is defined and not dhcpd_authoritative) %}
|
||
|
not authoritative;
|
||
|
|
||
|
{% endif %}
|
||
|
{% if dhcpd_global_options is defined and dhcpd_global_options %}
|
||
|
# Global configuration options
|
||
|
{{ dhcpd_global_options }}
|
||
|
|
||
|
{% endif %}
|
||
|
{% if dhcpd_options is defined and dhcpd_options %}
|
||
|
# Configuration options
|
||
|
{{ dhcpd_options }}
|
||
|
|
||
|
{% endif %}
|
||
|
{% if dhcpd_classes is defined and dhcpd_classes %}
|
||
|
{% for class in dhcpd_classes %}
|
||
|
{{ print_class(class) }}
|
||
|
{% endfor %}
|
||
|
{% endif %}
|
||
|
{% if dhcpd_shared_networks is defined and dhcpd_shared_networks %}
|
||
|
{% for network in dhcpd_shared_networks %}
|
||
|
{% if network.subnets is defined and network.subnets %}
|
||
|
{% if network.comment is defined and network.comment %}
|
||
|
# {{ network.comment }}
|
||
|
{% endif %}
|
||
|
shared-network "{{ network.name }}" {
|
||
|
{% if network.options is defined and network.options %}
|
||
|
{{ network.options | indent(8,true) }}
|
||
|
{% endif %}
|
||
|
{% if network.include is defined and network.include %}
|
||
|
include "{{ network.include }}";
|
||
|
{% endif %}
|
||
|
{% for subnet in network.subnets %}
|
||
|
|
||
|
{{ print_subnet(subnet) | indent(8,true) }}
|
||
|
{% endfor %}
|
||
|
}
|
||
|
|
||
|
{% endif %}
|
||
|
{% endfor %}
|
||
|
{% endif %}
|
||
|
{% if dhcpd_groups is defined and dhcpd_groups %}
|
||
|
{% for group in dhcpd_groups %}
|
||
|
{{ print_group(group) }}
|
||
|
{% endfor %}
|
||
|
{% endif %}
|
||
|
{% if dhcpd_subnets is defined and dhcpd_subnets %}
|
||
|
{% for subnet in dhcpd_subnets %}
|
||
|
{{ print_subnet(subnet) }}
|
||
|
{% endfor %}
|
||
|
{% endif %}
|
||
|
{% if dhcpd_hosts is defined and dhcpd_hosts %}
|
||
|
{{ print_hosts(dhcpd_hosts) }}
|
||
|
{% endif %}
|
||
|
{% if dhcpd_includes is defined and dhcpd_includes %}
|
||
|
{% for include in dhcpd_includes %}
|
||
|
include "{{ include }}";
|
||
|
{% endfor %}
|
||
|
|
||
|
{% endif %}
|
||
|
{#
|
||
|
vim: ft=dhcpd
|
||
|
#}
|