46 lines
1.7 KiB
YAML
46 lines
1.7 KiB
YAML
---
|
|
# Set state status for dhcp pool
|
|
- name: Set state status for dhcp pool {{ item.id | default(item.interface) }}
|
|
ansible.builtin.set_fact:
|
|
dhcp_state: "{{ item.state | default('present') }}"
|
|
|
|
# Delete dhcp pool for interface
|
|
- name: Delete dhcp pool for interface {{ item.id | default(item.interface) }}
|
|
when: "'absent' in dhcp_state"
|
|
uci:
|
|
command: "absent"
|
|
config: "dhcp"
|
|
section: "{{ item.id | default(item.interface) }}"
|
|
type: "dhcp"
|
|
|
|
# Create and configure dhcp pool for interface
|
|
- name: Create and configure dhcp pool for interface
|
|
when: "'present' in dhcp_state"
|
|
block:
|
|
# Create dhcp pool for interface
|
|
- name: Create dhcp pool for interface {{ item.id | default(item.interface) }}
|
|
uci:
|
|
command: "add"
|
|
config: "dhcp"
|
|
section: "{{ item.id | default(item.interface) }}"
|
|
type: "dhcp"
|
|
|
|
# Configure dhcp pool
|
|
- name: Configure dhcp pool for {{ item.id | default(item.interface) }}
|
|
uci:
|
|
command: "set"
|
|
config: "dhcp"
|
|
section: "{{ item.id | default(item.interface) }}"
|
|
type: "dhcp"
|
|
value:
|
|
interface: "{{ item.interface | default(omit) }}"
|
|
dhcp_option: "{{ item.dhcp_option | default([]) | join(' ') }}"
|
|
force: "{{ item.force | default(omit) }}"
|
|
dhcpv4: "{{ item.dhcpv4 | default(omit) }}"
|
|
leasetime: "{{ item.leasetime | default(omit) }}"
|
|
limit: "{{ item.limit | default(omit) }}"
|
|
start: "{{ item.start | default(omit) }}"
|
|
ra: "{{ item.ra | default(omit) }}"
|
|
dhcpv6: "{{ item.dhcpv6 | default(omit) }}"
|
|
dns_service: "{{ item.dns_service | default(omit) }}"
|