Hi @lbetson and welcome to the fore-um!
The case you describe is luckily fairly “vanilla” thanks to the “foreman-installer” (I didn’t really realize this at first, but this puppy installs and configures all the ingredients needed for doing a PXE set-up; at least, as long as you don’t immediatelly start with more complex set-ups with external servers etc.). I’d recommend (manually) creating a VM, installing CentOS and then follow the steps documented on the following link (but, in the drop down you’ll have to select “CentOS” first):
https://theforeman.org/manuals/1.20/index.html#2.1Installation
After you’ve installed all required packages, at some point you’ll be asked to run “foreman-installer”; I’d recommend running this in interactive mode, by passing the “-i” parameter. This will give you a menu from which you can configure A LOT… REALLY.
The settings that you really want to look out for, are the DHCP and DNS settings, which are under the “foreman-proxy” menus. Looking at my notes, these are:
dhcp: **true**
dhcp_listen_on: https
dhcp_managed: true
dhcp_provider: isc
dhcp_subnets: []
dhcp_option_domain: [ **<your domain here>** ]
dhcp_search_domains:
dhcp_interface: **eth0**
dhcp_additional_interfaces: []
dhcp_gateway: **< your gateway here >**
dhcp_range: **< your range here, e.g. 192.168.0.1 192.168.0.200 >**
dhcp_pxeserver:
dhcp_nameservers: < ip address of your box >
Also, enable TFTP:
tftp: true
tftp_listen_on: https
tftp_managed: true
for DNS
dns: true
dns_listen_on: https
dns_managed: true
dns_provider: nsupdate
dns_interface: **eth0**
dns_zone: **< your domain you want to control here >**
That’s basically the gist of it at least.
Big bonus tip: really take a look at the logs that foreman spews, it’s very valuable to get this up and running. Once you get the hang of it, though, it will really be easy to set this up and you’ll know what to look for.
Okay, now that you have the system installed, you’ll have to log in to the website (the installer gives you all the details, as well as the login and password).
In the website, you’ll have to create a domain matching up to the one configured and you’ll have to configure it to use your machine as smart-proxy (there will only be on in the list)
You’ll also have to do the same for the subnet (or you can import it from the smart-proxy menu); again, let all proxies point to your smart-proxy!
Finally you’ll have to create an Operating System, e.g. CentOS and associate the CentOS mirror.
You’re almost there! Bear with me; there’s this thing called “provisioning templates”, you’ll have to associate, in case of CentOS, the “Kickstart” templates to your newly created OS. After this is done, you’ll have to edit your OS and tell it which templates to use (again, there will only be one for each type). While in the provisioning templates menu, also click on “Build PXE Default” as this actually deploys some mandatory files to your smart-proxy (you’ll have to repeat this step each time you’d add a smart proxy).
ANYWAY, I’ve really birdviewed this topic but I’d be happy to help you out as you move on; But definitely take a look around on the forum as there are a lot of people walking in your shoes and you could probably learn from the already provided answers as well (as they’ll be more detailed than this one probably).
Kind regards and best of luck!