Unable to hit http://foreman.example.com/unattend/built when using DHCP with image provisioning

After provisioning a VM using a VMware resource provider image, the host comes up and puppet successfully enrols.

I then wish for my script to hit http://foreman.example.com/unattend/built in order to finish the build process and mark the host as built. Attempting to hit the endpoint from the still-provisioning host results in:

[root@jay-jewel ~]# curl http://foreman.example.com/unattended/built
# unattended: unable to find a host that matches the request from

So I’ve got the endpoint right, but foreman doesn’t have the DHCP address as the provisioning address. The “VM” tab correctly identifies the IP address. The “NICs” tab does not show the address.

If i manually complete provisioning, puppet will then go ahead and populate the IP address field under “NICs”

How are others completing VMware image-based builds with cloud-init? It seems the docs for foreman_userdata assume that you’re going to be using a static IP for image-based provisioning.

Expected outcome:

Foreman and Proxy versions:
Foreman and Proxy plugin versions:

Other relevant data:
[e.g. logs from Foreman and/or the Proxy, modified templates, commands issued, etc]
(for logs, surround with three back-ticks to get proper formatting, e.g.)


Hello, missed the mail. Have you set token_duration setting to zero? If not, foreman should render the built?token=UUID URL which will enable Foreman to locate the host correctly. If the token is not present, then Foreman falls back to REMOTE_IP search which will fail behind NATs or when IP address is not managed by DHCP server and correctly set in the database.