You should take a look at GNU stow. I also felt the same frustration as my bootstrap script got ugly and uglier. And then I shifted to stow. And now its just a single line:
stow * --target ~
With respect to ansible, I've been thinking of managing my laptop using just ansible to install new packages, and update configuration (apache, sshd and so on). Kinda like chef-solo, but using ansible. Has anyone done anything like that?
Thanks for the tip about Stow, never knew about it and I will research it.
Ansible can be used for your local machine without any central server by default. I use this[0] playbook to update my packages daily on my DigitalOcean machines.