Ansible playbook with mostly-custom roles for deploying a VPS the way I prefer for personal hosting with nginx/passenger