Skip to content

Commit

Permalink
[dnsmasq] Added listener related configurations
Browse files Browse the repository at this point in the history
Signed-off-by: Roberto Alfieri <ralfieri@redhat.com>
  • Loading branch information
rebtoor committed May 21, 2024
1 parent 81b1053 commit 5d389a2
Show file tree
Hide file tree
Showing 5 changed files with 63 additions and 4 deletions.
4 changes: 4 additions & 0 deletions roles/dnsmasq/defaults/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,7 @@

cifmw_dnsmasq_basedir: "/etc/cifmw-dnsmasq.d"
cifmw_dnsmasq_global_options: {}
cifmw_dnsmasq_forwarders: []
cifmw_dnsmasq_interfaces: []
cifmw_dnsmasq_listen_addresses: []
cifmw_dnsmasq_enable_dns: false
3 changes: 3 additions & 0 deletions roles/dnsmasq/tasks/configure.yml
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,9 @@
src: "cifmw-dnsmasq.conf.j2"
validate: "/usr/sbin/dnsmasq -C %s --test"

- name: Render listening directives
ansible.builtin.include_tasks: listener.yml

- name: Manage and start dnsmasq instance
become: true
when:
Expand Down
34 changes: 34 additions & 0 deletions roles/dnsmasq/tasks/listener.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
---
# Copyright Red Hat, Inc.
# All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.

- name: Create listener configuration file
become: true
when:
- _act == 'install'
notify: Restart dnsmasq
ansible.builtin.template:
dest: "{{ cifmw_dnsmasq_basedir }}/listener.conf"
mode: "0644"
src: "listener.conf.j2"
validate: "/usr/sbin/dnsmasq -C %s --test"

- name: Remove listener configuration file
become: true
when:
- _act == 'cleanup'
ansible.builtin.file:
path: "{{ cifmw_dnsmasq_basedir }}/listener.conf"
state: absent
6 changes: 2 additions & 4 deletions roles/dnsmasq/templates/cifmw-dnsmasq.conf.j2
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
# Disable DNS
port=0
# Avoid conflict with other DNS listening on lo
except-interface=lo
# Managed by ci-framework/dnsmasq

user=dnsmasq
group=dnsmasq
pid-file=/var/run/cifmw-dnsmasq.pid
Expand Down
20 changes: 20 additions & 0 deletions roles/dnsmasq/templates/listener.conf.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Managed by ci-framework/dnsmasq

{% if cifmw_dnsmasq_enable_dns is false %}
Port=0
{% endif %}

# Avoid conflict with other DNS listening on lo
except-interface=lo

{% if cifmw_dnsmasq_listen_addresses | length > 0 %}
listen_address={{ cifmw_dnsmasq_listen_addresses |
reject('equalto', '127.0.0.1') |
join(',') }}
{% endif %}

{% for interface in cifmw_dnsmasq_interfaces %}
{% if interface != "lo" %}
interface={{ interface }}
{% endif %}
{% endfor %}

0 comments on commit 5d389a2

Please sign in to comment.