Puppet-like ansible-pull or similar?

Hi everyone , we currently have in production Foreman with Puppet flawlessly for a mixed linux-windows environment consisting of some infra-servers and some laptops, reporting to a secure proxy, without issues, both reporting facts to Foreman and so.

I would like to know if it’s possible to have something similar with Ansible, where the ‘nodes’ report periodically to foreman (pulling task, etc). As our laptops change their public IPs + nat’d (roadwarriors).

  • I saw an ansible-pull method but seems away from our current setup.
  • also though about using puppet to call periodically ansible-pull, but don’t know how nice/scalable would that be.

Does anyone has experience with a similar setup to guide me a bit ? ideas would be highly appreaciated.

The best way you can achieve similar results is to schedule repeated Ansible runs in Foreman. You can create such schedule for entire hostgroup. It does not change the way it’s execute, meaning it’s agentless and push mode. But I won’t hide that the user experience to maintain such recurring jobs is not ideal.

Thanks for your reply!
ok, but wouldn’t a push mode give errors on unreachable hosts? how would a push work for systems that are behind a NAT?

thanks again

You could use AWX and provisioning callbacks - then add a cron job on your hosts to call the AWX job.