Hey Rich, glad to see you with us!
Foreman (and it’s component called smart-proxy) is able to manage multiple DHCP server implementations. Our (puppet-based) installer will set you up ISC DHCP by default (it will not enable it for obvious reasons - you need to tell it). But we have smart-proxy modules for various DHCP servers including Infoblox, MSDHCP and - wait for it - dnsmasq. We just don’t have installer bits yet.
For TFTP it does not matter which service serves the directory, smart-proxy TFTP module just creates/deletes file in a directory it was told to, no tight integration with the TFTP service. By default we configure ISC TFTP via xinetd.
So the module you are looking for is fairly new, it was recently (last month) moved under theforeman github org and we are in progress of preparing RPMs (not yet done - http://yum.theforeman.org/plugins/nightly/el7/x86_64/ is anyone working on this?). Installation of proxy module is easy tho, it is just a rubygem you need to install and edit one YAML file.
This is not the only way of managing dnsmasq, there is embedded module called dhcp_virsh which is able to manage dnsmasq via virsh command, it it has limited features and “true” dnsmasq module is now preferred.
You can also manage DNS, there is similar module for dnsmasq DNS service. Both plugins simply modify configuration files and sends SIGHUP to the dnsmasq process to reload them.
If you prefer not to use those dnsmasq modules, there are several other options. You can use foreman_hooks plugin and create shell scripts to add DHCP entries or you can simply use unmanaged DHCP. It will work as long as you send the DHCP filename option (pxelinux or grub2 depending on which one you want to use) and next-server entry. But Foreman PXE workflow require an IP address to be reserved, you can simply enter dummy one or set IPAM to DB and let foreman to generate a dummy IP for you. Once Puppet or Ansible checks in via report, there is an Setting you can opt-in to update the IP address in Foreman inventory as well as Subnet.
Don’t hesitate to ping me (lzap) on freenode/rh networks if you need any assistance, I owe you a lot for your help with my many questions about booting, BIOS and EFI