ansible-role-dhcpd/tasks/main.yml

63 lines
1.5 KiB
YAML

---
- name: Check if at least one subnet is defined
ansible.builtin.assert:
that:
- dhcpd_subnets | length > 0
fail_msg: "No subnet defined"
- name: Include OS-specific variables
ansible.builtin.include_vars: "{{ ansible_os_family }}.yml"
- name: Install dhcpd with dependencies
ansible.builtin.package:
name: "{{ item }}"
state: present
with_items:
- "{{ dhcpd_package_names }}"
- name: Create dhcpd config
ansible.builtin.template:
src: "dhcpd.conf.j2"
dest: "{{ dhcpd_main_config }}"
owner: "{{ dhcpd_unix_user }}"
group: "{{ dhcpd_unix_group }}"
mode: 0644
- name: Cleanup cache files
notify: Restart dhcpd
block:
- name: Check if cache dir exists
ansible.builtin.stat:
path: "{{ dhcpd_cache_directory }}"
register: cache_stats
- name: Remove cache dir
ansible.builtin.file:
path: "{{ dhcpd_cache_directory }}"
state: absent
when: cache_stats.stat.exists
- name: Create cache dir
ansible.builtin.file:
path: "{{ dhcpd_cache_directory }}"
owner: "{{ dhcpd_unix_user }}"
group: "{{ dhcpd_unix_group }}"
mode: 0755
state: directory
- name: Create cache files
ansible.builtin.file:
path: "{{ dhcpd_cache_directory }}/{{ item }}"
owner: "{{ dhcpd_unix_user }}"
group: "{{ dhcpd_unix_group }}"
mode: 0644
state: touch
with_items:
- dhcpd.leases
- name: Start and enable dhcpd
ansible.builtin.systemd:
name: "{{ item }}"
state: started
enabled: true
with_items:
- "{{ dhcpd_service_name }}"