[MERGED] osmo-ci[master]: ansible: add role udhcpd: setup a udhcpd server

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

Harald Welte gerrit-no-reply at lists.osmocom.org
Wed Apr 11 21:28:31 UTC 2018


Harald Welte has submitted this change and it was merged.

Change subject: ansible: add role udhcpd: setup a udhcpd server
......................................................................


ansible: add role udhcpd: setup a udhcpd server

Change-Id: Ia272ae9c2b245d0a06f84b91f50dd875d4488e02
---
A ansible/roles/udhcpd/README.md
A ansible/roles/udhcpd/defaults/main.yml
A ansible/roles/udhcpd/tasks/main.yml
A ansible/roles/udhcpd/templates/etc/udhcpd.conf
4 files changed, 168 insertions(+), 0 deletions(-)

Approvals:
  lynxis lazus: Verified
  Pau Espin Pedrol: Looks good to me, approved



diff --git a/ansible/roles/udhcpd/README.md b/ansible/roles/udhcpd/README.md
new file mode 100644
index 0000000..0d37661
--- /dev/null
+++ b/ansible/roles/udhcpd/README.md
@@ -0,0 +1,15 @@
+---
+Install and configure udhcpd.
+
+```
+    - name: udhcpd
+      udhcpd_router: 10.42.42.1
+      udhcpd_range_start: 10.42.42.230
+      udhcpd_range_end: 10.42.42.230
+      udhcpd_netmask: 255.255.255.0
+      udhcpd_dns: 10.42.42.2
+      udhcpd_interface: enp2s0
+      udhcpd_static_leases:
+        - mac: 00:12:34:56:78:9a
+          ip: 10.42.42.53
+```
diff --git a/ansible/roles/udhcpd/defaults/main.yml b/ansible/roles/udhcpd/defaults/main.yml
new file mode 100644
index 0000000..1f4ef47
--- /dev/null
+++ b/ansible/roles/udhcpd/defaults/main.yml
@@ -0,0 +1,16 @@
+---
+
+udhcpd_range_start: 192.168.1.100
+udhcpd_range_end: 192.168.1.200
+
+udhcpd_subnet: 255.255.255.0
+udhcpd_router:  192.168.1.1
+udhcpd_dns: "{{ udhcpd_router }}"
+
+# in seconds
+# default: 10 days
+udhcpd_lease_time: 864000
+
+udhcpd_interface: eth0
+
+udhcpd_static_leases: []
diff --git a/ansible/roles/udhcpd/tasks/main.yml b/ansible/roles/udhcpd/tasks/main.yml
new file mode 100644
index 0000000..280a5ef
--- /dev/null
+++ b/ansible/roles/udhcpd/tasks/main.yml
@@ -0,0 +1,14 @@
+---
+- name: udhcpd | update apt-cache
+  apt:
+    cache_valid_time: 3600
+    update_cache: yes
+
+- name: udhcpd | install
+  apt:
+    name: udhcpd
+
+- name: configure udhcpd
+  template:
+    src: etc/udhcpd.conf
+    dest: /etc/udhcpd.conf
diff --git a/ansible/roles/udhcpd/templates/etc/udhcpd.conf b/ansible/roles/udhcpd/templates/etc/udhcpd.conf
new file mode 100644
index 0000000..d2df746
--- /dev/null
+++ b/ansible/roles/udhcpd/templates/etc/udhcpd.conf
@@ -0,0 +1,123 @@
+# {{ ansible_managed }}
+
+# The start and end of the IP lease block
+
+start		{{ udhcpd_range_start }}	#default: 192.168.0.20
+end		{{ udhcpd_range_end }}		#default: 192.168.0.254
+
+opt	dns	{{ udhcpd_dns }}
+option	subnet	{{ udhcpd_subnet }}
+opt	router	{{ udhcpd_router }}
+option	domain	local
+option	lease	{{ udhcpd_lease_time }}		# 10 days of seconds
+
+
+
+# The interface that udhcpd will use
+
+interface	{{ udhcpd_interface }}		#default: eth0
+
+
+# The maximim number of leases (includes addressesd reserved
+# by OFFER's, DECLINE's, and ARP conficts
+
+#max_leases	254		#default: 254
+
+
+# If remaining is true (default), udhcpd will store the time
+# remaining for each lease in the udhcpd leases file. This is
+# for embedded systems that cannot keep time between reboots.
+# If you set remaining to no, the absolute time that the lease
+# expires at will be stored in the dhcpd.leases file.
+
+#remaining	yes		#default: yes
+
+
+# The time period at which udhcpd will write out a dhcpd.leases
+# file. If this is 0, udhcpd will never automatically write a
+# lease file. (specified in seconds)
+
+#auto_time	7200		#default: 7200 (2 hours)
+
+
+# The amount of time that an IP will be reserved (leased) for if a
+# DHCP decline message is received (seconds).
+
+#decline_time	3600		#default: 3600 (1 hour)
+
+
+# The amount of time that an IP will be reserved (leased) for if an
+# ARP conflct occurs. (seconds
+
+#conflict_time	3600		#default: 3600 (1 hour)
+
+
+# How long an offered address is reserved (leased) in seconds
+
+#offer_time	60		#default: 60 (1 minute)
+
+# If a lease to be given is below this value, the full lease time is
+# instead used (seconds).
+
+#min_lease	60		#defult: 60
+
+
+# The location of the leases file
+
+#lease_file	/var/lib/misc/udhcpd.leases	#defualt: /var/lib/misc/udhcpd.leases
+
+# The location of the pid file
+#pidfile	/var/run/udhcpd.pid	#default: /var/run/udhcpd.pid
+
+# Everytime udhcpd writes a leases file, the below script will be called.
+# Useful for writing the lease file to flash every few hours.
+
+#notify_file				#default: (no script)
+
+#notify_file	dumpleases	# <--- useful for debugging
+
+# The following are bootp specific options, setable by udhcpd.
+
+#siaddr		192.168.0.22		#default: 0.0.0.0
+
+#sname		zorak			#default: (none)
+
+#boot_file	/var/nfs_root		#default: (none)
+
+# The remainer of options are DHCP options and can be specifed with the
+# keyword 'opt' or 'option'. If an option can take multiple items, such
+# as the dns option, they can be listed on the same line, or multiple
+# lines. The only option with a default is 'lease'.
+
+# Currently supported options, for more info, see options.c
+#opt subnet
+#opt timezone
+#opt router
+#opt timesrv
+#opt namesrv
+#opt dns
+#opt logsrv
+#opt cookiesrv
+#opt lprsrv
+#opt bootsize
+#opt domain
+#opt swapsrv
+#opt rootpath
+#opt ipttl
+#opt mtu
+#opt broadcast
+#opt wins
+#opt lease
+#opt ntpsrv
+#opt tftp
+#opt bootfile
+#opt wpad
+# opt	wins	192.168.10.10
+
+# Static leases map
+#static_lease 00:60:08:11:CE:4E 192.168.0.54
+#static_lease 00:60:08:11:CE:3E 192.168.0.44
+
+{% for lease in udhcpd_static_leases %}
+static_lease {{ lease['mac'] }} {{ lease['ip'] }}
+{% endfor %}

-- 
To view, visit https://gerrit.osmocom.org/7735
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Ia272ae9c2b245d0a06f84b91f50dd875d4488e02
Gerrit-PatchSet: 2
Gerrit-Project: osmo-ci
Gerrit-Branch: master
Gerrit-Owner: lynxis lazus <lynxis at fe80.eu>
Gerrit-Reviewer: Harald Welte <laforge at gnumonks.org>
Gerrit-Reviewer: Pau Espin Pedrol <pespin at sysmocom.de>
Gerrit-Reviewer: lynxis lazus <lynxis at fe80.eu>



More information about the gerrit-log mailing list