Smart Proxy + remote ISC DHCP + Plugins

Hi all,

I’m having an issue understanding Foreman + Smart Proxy + ISC DHCP (+Plugins - I think).
I am not a Dev, I’m a Systems Infrastructure Engineer / Admin.

What I need to do within the next couple of days is pretty simple. I need to build a DHCP Server for around 300 hosts across about 10x different VLANS. This I am just going to use ISC DHCP.

I need to have a way of looking at the leases across all subnets. Hence I am here and have done almost 2 days reading and poking around. I like what I see.

What is the current + smartest way to achieve this? I have a test setup running in a lab environment and I can’t seem to get any lease info into Foreman. This is very likely down to my lack of knowledge.

My questions are:

What functionality does Foreman have for listing current leases from a remote ISC DHCP Server? I understand that this is done by reading the lease file over nfs.

I found these plugins:

• puppet-dhcp
• smart-proxy
• smart_proxy_dhcp_infoblox
• foreman_dhcp_browser
• smart_proxy_dhcp_remote_isc

Which of these should I be using? If any.

Something that is also unclear to me is if any part of foreman / smart-proxy needs to be installed on the remote DHCP server? Or is everything that is required to be installed only on the foreman server?

I’ve seen lots of requests for features followed up by replies saying they have been written into the next release, this is why I am little unclear what v1.16 can and cannot do without any plugins. Also unclear what might need to be installed on the remote DHCP Server (if anything)?

I know this setup is barely touching the surface of what can be done here, but for now this is all I have time to achieve!

Thank you for any clarity you can provide. :wink:

Ollie

Hey,

Smart Proxy has built in module that manages locally installed ISC DHCP, if
you can deploy smart proxy on your DHCP server, do it and this is the best
way to do things. Our puppet-based installer can deploy the ISC DHCP for
you as well, or you can simply install smart-proxy without dhcp turned on
and configure it manually for existing DHCP instance. We do have
documentation on that, couple of configuration file changes.

Then there’s smart_proxy_dhcp_remote_isc which is for cluster/ha
environment where you have multiple DHCP servers deployed, perhaps not for
you.

Good luck

I thought the main difference between the built in ISC DHCP plugin and the remote one is that the DHCP config lives on another filesystem that doesn’t support inotify and such meaning some different tactics need to be used to watch for changes. If the proxy and the DHCP server live on the same server with local filesystems then @lzap is correct that the built in tools are probably just what you’re looking for. The puppet modules used in the installer can set it up for you but manual configuration is another option that’s fully supported.

Note that the DHCP server and Foreman do not need to live on the same server: the smart proxy abstracts the DHCP server away by exposing a REST API. Foreman then talks to this REST API.

Thanks for some great info there. I’d prefer to have theforeman run on a separate vm then query a DHCP vm. At the moment I have it running all in one vm, foreman + ISC DHCP. I have installed foreman_dhcp_browser, which is also up. Gives me a ‘DHCP’ button on the Subnets page.

Is there anyway to view this lease information without using this plugin (foreman_dhcp_browser) ?

I’m still a little unclear on the difference between Smart Proxy running as part of foreman and this smart-proxy on Git: https://github.com/theforeman/smart-proxy - Could you help me understand the difference here?

Is the one on git for installing on a remote ISC DHCP allowing communication back to the foreman server?

Thanks again,
Ollie

Same thing. If you look on your Foreman box you’ll find a proxy process running and listening on port 8443, which is what Foreman queries (the REST api @ekohl mentioned).

Thanks gents, I have my server running now, everything locally on one machine.

Server name: dhcp01

  • ISC DHCP
  • foreman
  • foreman-proxy

Successfully reads dhcpd.conf and dhcpd.leases - I have imported all subnets, so that idicates it can read dhcpd.conf. Im also getting no erros in the log about the lease file permissions.

The problem is I am getting NO lease info, I have installed foreman_dhcp_browser. The DHCP button is there in the Subnet sections. Just zero records are populated. I can’t work out why no records are being read.

Am I correct in assuming the smart-proxy + foreman_dhcp_browser should read an existing lease file and populate in the subnets?

These are my permissions:

[root@dhcp01v-bj settings.d]# ls -la /var/lib/dhcpd
total 44
drwxr-xr-x. 2 dhcpd dhcpd 68 Jan 23 21:33 .
drwxr-xr-x. 60 root root 4096 Jan 23 19:59 …
-rwxr-xr-x. 1 dhcpd dhcpd 0 Aug 4 14:07 dhcpd6.leases
-rw-r–r-x. 1 dhcpd dhcpd 13923 Jan 23 22:01 dhcpd.leases
-rwxr-xr-x. 1 dhcpd dhcpd 22205 Jan 23 21:33 dhcpd.leases~

[root@dhcp01v-bj settings.d]# ls -la /var/lib | grep dhcp
drwxr-xr-x. 2 dhcpd dhcpd 68 Jan 23 21:33 dhcpd

Thanks so much, just one more step to go!
Ollie

I just checked /var/log/foreman-proxy/proxy.log

and it looks like it is actually doing something, still no clue why no lease info is being drawn in foreman.

D, [2018-01-23T22:09:57.463375 ] DEBUG – : close: 10.64.80.250:51948
D, [2018-01-23T22:14:23.207521 ] DEBUG – : caught :modify event on /var/lib/dhcpd/dhcpd.leases.
D, [2018-01-23T22:14:23.210115 ] DEBUG – : caught :modify event on /var/lib/dhcpd/dhcpd.leases.
D, [2018-01-23T22:14:23.214901 ] DEBUG – : Deleted a lease record: 10.64.70.230:00:50:56:94:45:a7
D, [2018-01-23T22:14:23.214976 ] DEBUG – : Added a lease record: 10.64.70.230:00:50:56:94:45:a7
D, [2018-01-23T22:14:23.215049 ] DEBUG – : Deleted a lease record: 10.64.70.230:00:50:56:94:45:a7
D, [2018-01-23T22:14:23.215088 ] DEBUG – : Added a lease record: 10.64.70.230:00:50:56:94:45:a7
D, [2018-01-23T22:14:23.215151 ] DEBUG – : Deleted a lease record: 10.64.70.230:00:50:56:94:45:a7
D, [2018-01-23T22:14:23.215190 ] DEBUG – : Added a lease record: 10.64.70.230:00:50:56:94:45:a7
D, [2018-01-23T22:14:23.215296 ] DEBUG – : caught :modify event on /var/lib/dhcpd/dhcpd.leases.
D, [2018-01-23T22:15:44.824634 ] DEBUG – : caught :modify event on /var/lib/dhcpd/dhcpd.leases.
D, [2018-01-23T22:15:44.827764 ] DEBUG – : Deleted a lease record: 10.64.100.104:4c:cc:6a:d6:2c:50
D, [2018-01-23T22:15:44.827846 ] DEBUG – : Added a lease record: 10.64.100.104:4c:cc:6a:d6:2c:50
D, [2018-01-23T22:15:44.828940 ] DEBUG – : caught :modify event on /var/lib/dhcpd/dhcpd.leases.
D, [2018-01-23T22:15:44.829580 ] DEBUG – : caught :modify event on /var/lib/dhcpd/dhcpd.leases.
D, [2018-01-23T22:15:44.841928 ] DEBUG – : Deleted a lease record: 10.64.100.104:4c:cc:6a:d6:2c:50
D, [2018-01-23T22:15:44.841985 ] DEBUG – : Added a lease record: 10.64.100.104:4c:cc:6a:d6:2c:50
D, [2018-01-23T22:15:44.842050 ] DEBUG – : Deleted a lease record: 10.64.100.104:4c:cc:6a:d6:2c:50
D, [2018-01-23T22:15:44.842087 ] DEBUG – : Added a lease record: 10.64.100.104:4c:cc:6a:d6:2c:50
D, [2018-01-23T22:16:21.202882 ] DEBUG – : caught :modify event on /var/lib/dhcpd/dhcpd.leases.
D, [2018-01-23T22:16:21.206838 ] DEBUG – : Deleted a lease record: 10.64.100.113:e0:d5:5e:23:0e:27
D, [2018-01-23T22:16:21.206900 ] DEBUG – : Added a lease record: 10.64.100.113:e0:d5:5e:23:0e:27
D, [2018-01-23T22:16:21.206966 ] DEBUG – : Deleted a lease record: 10.64.100.113:e0:d5:5e:23:0e:27
D, [2018-01-23T22:16:21.207005 ] DEBUG – : Added a lease record: 10.64.100.113:e0:d5:5e:23:0e:27
D, [2018-01-23T22:16:21.207177 ] DEBUG – : caught :modify event on /var/lib/dhcpd/dhcpd.leases.
D, [2018-01-23T22:16:21.208264 ] DEBUG – : caught :modify event on /var/lib/dhcpd/dhcpd.leases.
D, [2018-01-23T22:16:21.211533 ] DEBUG – : Deleted a lease record: 10.64.100.113:e0:d5:5e:23:0e:27
D, [2018-01-23T22:16:21.211590 ] DEBUG – : Added a lease record: 10.64.100.113:e0:d5:5e:23:0e:27
D, [2018-01-23T22:18:32.028207 ] DEBUG – : caught :modify event on /var/lib/dhcpd/dhcpd.leases.
D, [2018-01-23T22:18:32.031941 ] DEBUG – : Deleted a lease record: 10.64.100.108:4c:cc:6a:d4:fe:a4
D, [2018-01-23T22:18:32.032046 ] DEBUG – : Added a lease record: 10.64.100.108:4c:cc:6a:d4:fe:a4
D, [2018-01-23T22:18:32.033024 ] DEBUG – : caught :modify event on /var/lib/dhcpd/dhcpd.leases.
D, [2018-01-23T22:18:32.034060 ] DEBUG – : caught :modify event on /var/lib/dhcpd/dhcpd.leases.
D, [2018-01-23T22:18:32.046039 ] DEBUG – : Deleted a lease record: 10.64.100.108:4c:cc:6a:d4:fe:a4
D, [2018-01-23T22:18:32.046108 ] DEBUG – : Added a lease record: 10.64.100.108:4c:cc:6a:d4:fe:a4
D, [2018-01-23T22:18:32.046177 ] DEBUG – : Deleted a lease record: 10.64.100.108:4c:cc:6a:d4:fe:a4
D, [2018-01-23T22:18:32.046215 ] DEBUG – : Added a lease record: 10.64.100.108:4c:cc:6a:d4:fe:a4
D, [2018-01-23T22:20:44.183511 ] DEBUG – : caught :modify event on /var/lib/dhcpd/dhcpd.leases.
D, [2018-01-23T22:20:44.189761 ] DEBUG – : Deleted a lease record: 10.64.100.101:2c:4d:54:d1:dd:18
D, [2018-01-23T22:20:44.189833 ] DEBUG – : Added a lease record: 10.64.100.101:2c:4d:54:d1:dd:18
D, [2018-01-23T22:20:44.189905 ] DEBUG – : Deleted a lease record: 10.64.100.101:2c:4d:54:d1:dd:18
D, [2018-01-23T22:20:44.189951 ] DEBUG – : Added a lease record: 10.64.100.101:2c:4d:54:d1:dd:18
D, [2018-01-23T22:20:44.190064 ] DEBUG – : caught :modify event on /var/lib/dhcpd/dhcpd.leases.
D, [2018-01-23T22:20:44.193169 ] DEBUG – : caught :modify event on /var/lib/dhcpd/dhcpd.leases.
D, [2018-01-23T22:20:44.197158 ] DEBUG – : Deleted a lease record: 10.64.100.101:2c:4d:54:d1:dd:18
D, [2018-01-23T22:20:44.197230 ] DEBUG – : Added a lease record: 10.64.100.101:2c:4d:54:d1:dd:18
D, [2018-01-23T22:24:26.690077 ] DEBUG – : caught :modify event on /var/lib/dhcpd/dhcpd.leases.
D, [2018-01-23T22:24:26.702532 ] DEBUG – : Added a lease record: 10.64.100.106:24:6e:96:63:f3:bc
D, [2018-01-23T22:24:26.703319 ] DEBUG – : caught :modify event on /var/lib/dhcpd/dhcpd.leases.
D, [2018-01-23T22:24:26.706888 ] DEBUG – : Deleted a lease record: 10.64.100.106:24:6e:96:63:f3:bc
D, [2018-01-23T22:24:26.706967 ] DEBUG – : Added a lease record: 10.64.100.106:24:6e:96:63:f3:bc
D, [2018-01-23T22:28:52.068304 ] DEBUG – : caught :modify event on /var/lib/dhcpd/dhcpd.leases.
D, [2018-01-23T22:28:52.071745 ] DEBUG – : Deleted a lease record: 10.64.100.111:d8:cb:8a:7d:18:09
D, [2018-01-23T22:28:52.071827 ] DEBUG – : Added a lease record: 10.64.100.111:d8:cb:8a:7d:18:09
D, [2018-01-23T22:28:52.072778 ] DEBUG – : caught :modify event on /var/lib/dhcpd/dhcpd.leases.
D, [2018-01-23T22:28:52.074012 ] DEBUG – : caught :modify event on /var/lib/dhcpd/dhcpd.leases.
D, [2018-01-23T22:28:52.077739 ] DEBUG – : Deleted a lease record: 10.64.100.111:d8:cb:8a:7d:18:09
D, [2018-01-23T22:28:52.077800 ] DEBUG – : Added a lease record: 10.64.100.111:d8:cb:8a:7d:18:09
D, [2018-01-23T22:28:52.077900 ] DEBUG – : Deleted a lease record: 10.64.100.111:d8:cb:8a:7d:18:09
D, [2018-01-23T22:28:52.077940 ] DEBUG – : Added a lease record: 10.64.100.111:d8:cb:8a:7d:18:09

I would suggest trying something like: curl http://smart-proxy-host:8000/dhcp/<network-address> to verify the leases file is being loaded/parsed ok.

Note that by default production systems are https on port 8443, and you’ll need to supply the client cert as well, so the above curl will need to be tweaked a bit :slight_smile:

As far I recall, the dhcp_browser plugin is only that, a browser. No information is passed into the rest of Foreman or used in any other way - it’s just a graphical view of what’s in your lease file, read on-demand when you click the DHCP button on the subnet.

That might be what you actually expect - but using the word “populate” suggest you expect Foreman to do something other than just display it, so I thought I’d mention it :slight_smile:

Nope, that is exactly what I expect. A read of an existing lease file. then shown in the browser so I can view it easily. Good to know its read at the time you hit the DHCP button. I’ll try the curl. Not 100% sure how to pass the cert. but google will.
Cheers!

I’ve tried curl,

Basic connect is ok.
curl -k https://10.64.80.250

You are being redirected.

But anything like this, fails:
curl -k https://10.64.80.250:8443/dhcp/10.64.100.0/
could not read client cert from environment

I read a few tickets on the old google forum saying this is because this needs auth (user/pass)?
Or should I be passing a cert. in the 2nd example and that will get around it?

Something like this (from my bash history):

curl -k https://topaz.elysium.emeraldreverie.org:8443/dhcp/<subnet> \
  --cert /etc/puppetlabs/puppet/ssl/certs/topaz.elysium.emeraldreverie.org.pem \
  --key /etc/puppetlabs/puppet/ssl/private_keys/topaz.elysium.emeraldreverie.org.pem

Obviously my proxy is called topaz and I’m calling curl while logged in, so it’s effectively a curl to localhost. The paths for your certs should be similar, you can probably look in the proxy config if you can’t find them.

Nice one, thank you so much! So it appears to be able to read the lease file:

root@dhcp01v-bj private_keys]# curl -k https://dhcp01v-bj.company.com:8443/dhcp/10.64.100.0 \  --cert /etc/puppetlabs/puppet/ssl/certs/dhcp01v-bj.company.com.pem \  --key /etc/puppetlabs/puppet/ssl/private_keys/dhcp01v-bj.company.com.pem
{"reservations":[],"leases":[{"name":"lease-246e9663f3bc","ip":"10.64.100.106","mac":"24:6e:96:63:f3:bc","subnet":"10.64.100.0/255.255.255.0","starts":"2018-01-24 06:54:27 UTC","ends":"2018-01-24 07:54:27 UTC","state":"active","type":"lease","cltt":"2018-01-24 06:54:27 UTC","next_state":"free","hardware_type":"ethernet","uid":"\"\\001$n\\226c\\363\\274\"","client_hostname":"\"Desktop\""},{"name":"lease-d8cb8a7d1809","ip":"10.64.100.111","mac":"d8:cb:8a:7d:18:09","subnet":"10.64.100.0/255.255.255.0","starts":"2018-01-24 06:58:49 UTC","ends":"2018-01-24 07:58:49 UTC","state":"active","type":"lease","cltt":"2018-01-24 06:58:49 UTC","next_state":"free","hardware_type":"ethernet","uid":"\"\\001\\330\\313\\212}\\030\\011\"","client_hostname":"\"DESKTOP-E47EBM1\""},{"name":"lease-4ccc6ad4ff4b","ip":"10.64.100.112","mac":"4c:cc:6a:d4:ff:4b","subnet":"10.64.100.0/255.255.255.0","starts":"2018-01-24 07:04:03 UTC","ends":"2018-01-24 08:04:03 UTC","state":"active","type":"lease","cltt":"2018-01-24 07:04:03 UTC","next_state":"free","hardware_type":"ethernet","uid":"\"\\001L\\314j\\324\\377K\"","client_hostname":"\"artist004\""},{"name":"lease-ac87a335c8f5","ip":"10.64.100.114","mac":"ac:87:a3:35:c8:f5","subnet":"10.64.100.0/255.255.255.0","starts":"2018-01-24 07:13:19 UTC","ends":"2018-01-24 09:13:19 UTC","state":"active","type":"lease","cltt":"2018-01-24 07:13:19 UTC","next_state":"free","hardware_type":"ethernet","uid":"\"\\001\\254\\207\\2435\\310\\365\"","client_hostname":"\"appledeiMac\""},{"name":"lease-e0d55e230e27","ip":"10.64.100.113","mac":"e0:d5:5e:23:0e:27","subnet":"10.64.100.0/255.255.255.0","starts":"2018-01-24 07:13:51 UTC","ends":"2018-01-24 08:13:51 UTC","state":"active","type":"lease","cltt":"2018-01-24 07:13:51 UTC","next_state":"free","hardware_type":"ethernet","uid":"\"\\001\\340\\325^#\\016'\"","client_hostname":"\"DESKTOP-UPVM5GR\""},{"name":"lease-4ccc6a064990","ip":"10.64.100.117","mac":"4c:cc:6a:06:49:90","subnet":"10.64.100.0/255.255.255.0","starts":"2018-01-24 07:14:59 UTC","ends":"2018-01-24 08:14:59 UTC","state":"active","type":"lease","cltt":"2018-01-24 07:14:59 UTC","next_state":"free","hardware_type":"ethernet","uid":"\"\\001L\\314j\\006I\\220\"","client_hostname":"\"DESKTOP-OVQJS0C\""}]}curl: (6) Could not resolve host:  ; Unknown error
curl: (6) Could not resolve host:  ; Unknown error
[root@dhcp01v-bj private_keys]# 

Do the ‘could not resolve host’ or ‘Unknown error’ at the end indicate anything? Or the fact it can return results mean it is working?

Now to figure out why the DHCP browser is empty. Any other ideas?

It’s probably also worth checking the Foreman logs in /var/log/foreman/production.log as it may be as simple as Foreman choking on that error message from the proxy…

I’ll check it now.

Nothing really to note other than:

2018-01-24 11:45:26 3daa44b7 [app] [I] Deface: [WARNING] No :original defined for ‘add_subnets_dhcp’, you should change its definition to include:
| :original => ‘fae3d7d2ed43d763a2d7f22235bb1346a546a9f3’

The other WARN is in the startup:
“TCPServer Error: Address already in use - bind(2)”

Not sure if that is the culprit?

I’ll take a tail on the proxy-log. See if that shows anything.

This looks like it is very aware of leases, too. I’m little bit baffled now. Easily done.

[root@dhcp01v-bj private_keys]# tail -f /var/log/foreman-proxy/proxy.log
D, [2018-01-24T12:00:47.037739 ] DEBUG – : Added a lease record: 10.64.100.101:2c:4d:54:d1:dd:18
D, [2018-01-24T12:01:07.183413 ] DEBUG – : caught :modify event on /var/lib/dhcpd/dhcpd.leases.
D, [2018-01-24T12:01:07.186866 ] DEBUG – : Deleted a lease record: 10.64.100.112:4c:cc:6a:d4:ff:4b
D, [2018-01-24T12:01:07.186930 ] DEBUG – : Added a lease record: 10.64.100.112:4c:cc:6a:d4:ff:4b
D, [2018-01-24T12:01:07.188309 ] DEBUG – : caught :modify event on /var/lib/dhcpd/dhcpd.leases.
D, [2018-01-24T12:01:07.191449 ] DEBUG – : Deleted a lease record: 10.64.100.112:4c:cc:6a:d4:ff:4b
D, [2018-01-24T12:01:07.191508 ] DEBUG – : Added a lease record: 10.64.100.112:4c:cc:6a:d4:ff:4b
D, [2018-01-24T12:01:07.192486 ] DEBUG – : caught :modify event on /var/lib/dhcpd/dhcpd.leases.
D, [2018-01-24T12:01:07.195572 ] DEBUG – : Deleted a lease record: 10.64.100.112:4c:cc:6a:d4:ff:4b
D, [2018-01-24T12:01:07.195644 ] DEBUG – : Added a lease record: 10.64.100.112:4c:cc:6a:d4:ff:4b

Note for katello installation certs are little different, here is my script:

#!/bin/bash
curl -ks --cert /etc/foreman/client_cert.pem --key
/etc/foreman/client_key.pem --cacert /etc/foreman/proxy_ca.pem https://
$(hostname):9090/dhcp
dhcpd -t -cf /etc/dhcp/dhcpd.conf"

Thanks but as far as I know I am not running Katello. I was able to run a curl locally on the server and read teh lease files successfully. But for some reason still NO lease records are displaying in foreman under subnets/DHCP. The production log even thinks it’d doing it successfully:

Anyone got other ideas I can check or logs that might help?

018-01-23 22:33:57 4bdf403c [app] [I] Started GET “/notification_recipients” for 10.64.80.120 at 2018-01-23 22:33:57 +0800
2018-01-23 22:33:57 4bdf403c [app] [I] Processing by NotificationRecipientsController#index as JSON
2018-01-23 22:33:57 4bdf403c [app] [I] Current user: admin (administrator)
2018-01-23 22:33:57 4bdf403c [app] [I] Completed 200 OK in 2ms (Views: 0.1ms | ActiveRecord: 0.1ms)
2018-01-23 22:34:02 1b7c9e66 [app] [I] Started GET “/subnets/1-VLAN100%20VENDOR/dhcp” for 10.64.80.120 at 2018-01-23 22:34:02 +0800
2018-01-23 22:34:02 1b7c9e66 [app] [I] Processing by DhcpController#index as HTML
2018-01-23 22:34:02 1b7c9e66 [app] [I] Parameters: {“subnet_id”=>“1-VLAN100 VENDOR”}
2018-01-23 22:34:02 1b7c9e66 [app] [I] Current user: admin (administrator)
2018-01-23 22:34:02 1b7c9e66 [app] [I] Rendered /opt/theforeman/tfm/root/usr/share/gems/gems/foreman_dhcp_browser-0.0.7/app/views/dhcp/index.html.erb within layouts/application (62.6ms)
2018-01-23 22:34:02 1b7c9e66 [app] [I] Rendered layouts/_application_content.html.erb (0.4ms)
2018-01-23 22:34:02 1b7c9e66 [app] [I] Rendered home/_user_dropdown.html.erb (1.5ms)
2018-01-23 22:34:02 1b7c9e66 [app] [I] Read fragment views/tabs_and_title_records-4 (0.1ms)
2018-01-23 22:34:02 1b7c9e66 [app] [I] Rendered home/_topbar.html.erb (5.4ms)
2018-01-23 22:34:02 1b7c9e66 [app] [I] Rendered layouts/base.html.erb (6.7ms)
2018-01-23 22:34:02 1b7c9e66 [app] [I] Completed 200 OK in 76ms (Views: 70.1ms | ActiveRecord: 0.9ms)
2018-01-23 22:34:02 e1be36ac [app] [I] Started GET “/subnets/1-VLAN100%20VENDOR/dhcp” for 10.64.80.120 at 2018-01-23 22:34:02 +0800
2018-01-23 22:34:02 e1be36ac [app] [I] Processing by DhcpController#index as HTML
2018-01-23 22:34:02 e1be36ac [app] [I] Parameters: {“subnet_id”=>“1-VLAN100 VENDOR”}
2018-01-23 22:34:02 e1be36ac [app] [I] Current user: admin (administrator)
2018-01-23 22:34:02 e1be36ac [app] [I] Rendered /opt/theforeman/tfm/root/usr/share/gems/gems/foreman_dhcp_browser-0.0.7/app/views/dhcp/index.html.erb within layouts/application (56.3ms)
2018-01-23 22:34:02 e1be36ac [app] [I] Rendered layouts/_application_content.html.erb (0.3ms)
2018-01-23 22:34:02 e1be36ac [app] [I] Rendered home/_user_dropdown.html.erb (1.4ms)
2018-01-23 22:34:02 e1be36ac [app] [I] Read fragment views/tabs_and_title_records-4 (0.1ms)
2018-01-23 22:34:02 e1be36ac [app] [I] Rendered home/_topbar.html.erb (3.8ms)
2018-01-23 22:34:02 e1be36ac [app] [I] Rendered layouts/base.html.erb (5.0ms)
2018-01-23 22:34:02 e1be36ac [app] [I] Completed 200 OK in 67ms (Views: 62.4ms | ActiveRecord: 0.4ms)

What about this in the start up log: The other WARN is in the startup:
“TCPServer Error: Address already in use - bind(2)” ?

I’m guessing that is irrelevant at this stage.
Thanks gents,
Ollie

Indeed, the Deface warning and TCP error are harmless. Can you bump the Foreman logging up to debug level and tail it and the proxy log when clicking the DHCP button in the UI, and then pastebin the resulting logs? Maybe we’ll spot something you overlooked :slight_smile: