At TBits.net, we have decided to use Ansible for setting up our servers. The most documented way of installing something on a machine via Ansible is using sudo: you create a normal user (eg. called deploy), that you can use
Setup an LXC host with Ansible
This is my first go at Ansible. Ansible uses SSH to setup servers with a desired environment. The scripts can be run again and again, and only apply things that have changed since the previous run. Please also see this