53 lines
1.4 KiB
YAML
53 lines
1.4 KiB
YAML
---
|
|
- name: Include OS-specific variables
|
|
ansible.builtin.include_vars: "{{ ansible_os_family }}.yml"
|
|
|
|
- name: Install packages
|
|
ansible.builtin.package:
|
|
name: "{{ dhcpd_package }}"
|
|
state: installed
|
|
|
|
- name: Get host data from LDAP
|
|
community.general.ldap_search:
|
|
attrs:
|
|
- cn
|
|
- ipHostNumber
|
|
- macAddress
|
|
client_cert: >-
|
|
{{ hostvars[ansible_server]['tls_certs'] + '/' + ansible_server }}.crt
|
|
client_key: >-
|
|
{{ hostvars[ansible_server]['tls_private'] + '/' + ansible_server }}.key
|
|
dn: "{{ dhcpd_ldap_basedn | default(ldap_basedn) }}"
|
|
filter: "{{ dhcpd_ldap_filter }}"
|
|
scope: subordinate
|
|
server_uri: "ldaps://{{ ldap_server[0] }}"
|
|
delegate_to: localhost
|
|
register: ldap_hosts
|
|
when: dhcpd_ldap_filter is defined
|
|
|
|
- name: Create config
|
|
ansible.builtin.template:
|
|
dest: "{{ dhcpd_config }}"
|
|
src: "{{ dhcpd_template | default('dhcpd.conf.j2') }}"
|
|
mode: "0644"
|
|
owner: root
|
|
group: "{{ ansible_wheel }}"
|
|
# validate: "dhcpd -t -cf %s"
|
|
notify: Restart dhcpd
|
|
|
|
- name: Create leases file
|
|
ansible.builtin.copy:
|
|
dest: /var/db/isc-dhcp/dhcpd.leases
|
|
content: ""
|
|
mode: "0644"
|
|
owner: _isc-dhcp
|
|
group: _isc-dhcp
|
|
force: false
|
|
when: ansible_os_family == "OpenBSD"
|
|
|
|
- name: Enable service
|
|
ansible.builtin.service:
|
|
name: "{{ dhcpd_service }}"
|
|
state: started
|
|
enabled: true
|
|
arguments: "-user _isc-dhcp -group _isc-dhcp vio0"
|