If you came here looking for it, the best Puppet module on the Forge is sbadia/gitlab, and is of course on GitHub too.
It handles the the full installation, including Ruby (via rbenv for better or worse), and while it tries to be isolated and not step on too many dependency toes, I still recommended confining it to one server. Most features can be turned off and handled separately (i.e. HTTP server [Nginx] and database [Postgres]).
Another great module is https://github.com/spuder/puppet-gitlab which uses the Omnibus packages.
It’s well tested and mostly keeps up with the latest releases. GitLab CI Omnibus is not yet well-supported.
I guess I shouldn’t have said best then! I like that it uses the omnibus package, as that is what I’ve personally switched to since I’m not deploying multiple servers.