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
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
block:
- name: check if cache dir exists
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
notify: restart dhcpd
- name: start and enable dhcpd
ansible.builtin.systemd:
name: "{{ item }}"
state: started
enabled: true
with_items:
- "{{ dhcpd_service_name }}"