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