45 lines
1.5 KiB
YAML
45 lines
1.5 KiB
YAML
---
|
|
- name: DHCP Server
|
|
hosts: service_dhcp
|
|
connection: local
|
|
|
|
pre_tasks:
|
|
# - name: Gather interfaces for dhcp service
|
|
# set_fact:
|
|
# dhcp_interfaces:
|
|
# - name: Gather subnets
|
|
# set_fact:
|
|
# subnets: ""
|
|
# prefixes: "{{ query('netbox.netbox.nb_lookup', 'prefixes', api_endpoint=netbox_api, token=netbox_token) }}"
|
|
|
|
# - ip: 192.168.222.0
|
|
# netmask: 255.255.255.128
|
|
# domain_name_servers:
|
|
# - 10.0.2.3
|
|
# - 10.0.2.4
|
|
# range_begin: 192.168.222.50
|
|
# range_end: 192.168.222.127
|
|
# - ip: 192.168.222.128
|
|
# default_lease_time: 3600
|
|
# max_lease_time: 7200
|
|
# netmask: 255.255.255.128
|
|
# domain_name_servers: 10.0.2.3
|
|
# routers: 192.168.222.129
|
|
roles:
|
|
- name: sage905.netbox-to-dhcp
|
|
|
|
# tasks:
|
|
# - debug:
|
|
# var: services
|
|
|
|
# # - name: Collect Prefix information for interfaces in DHCP Service
|
|
|
|
# - name: Collect host interfaces
|
|
# set_fact:
|
|
# dhcp_prefixes: "{{ query('netbox.netbox.nb_lookup', 'prefixes', api_filter='', api_endpoint=netbox_api, token=netbox_token) }}"
|
|
|
|
# - name: Test
|
|
# debug: var=dhcp_service
|
|
{% for interface in (services|selectattr('name','eq','dhcp')|first).ipaddresses %}
|
|
{% set prefix=(query('netbox.netbox.nb_lookup', 'prefixes', api_filter='q=' + interface.address, api_endpoint=netbox_api, token=netbox_token)|first).value %}
|
|
subnet {{ prefix.prefix|ipaddr('net') }} netmask {{ prefix.prefix|ipaddr('netmask') }} { |