Is there a way to register a machine to the director via puppet?
As of now I am using the icinga powershell module for windows agents to register them to the director but I can’t find any similar ways to do this with puppet for linux machines.
I am pretty sure the puppet module has no such capability, but it could be done with the rest api as @steaksauce mentioned. This would require basic auth for the webinterface, so some configuration to the webserver is needed, but when using a function on the puppet server you can utilize rewrite to do an address based login like this:
Another idea would be exported resources, a resource collector and then running a deferred function on the director server itself using the cli. This is what I typically do with Ansible and delegate_to.
And if your Puppet is managed by Foreman, there would be another option with the Foreman and Smart Proxy monitoring plugins when using the icinga2 and icingadirector provider. This would push hosts from Foreman to the Director, but it has never left an early development stage as I never found someone willing to sponsor more development.