Ansible and Salt don't seem to fit the use case of configuring something that
is effectively a chroot, and I don't know if Chef can be used with chroot-like
installations, but you must have used Puppet in a wrong way if it caused you
trouble (my guess is that you used Puppet with master, not a CFEngine-like
masterless mode).