Self Hosted Gitlab Enterprise on Ubuntu Xenial 16.04 for Continous Deployment into Kubernetes

Gitlab Enterprise as a Self Hosted Alternative to Github

I’ve been a big fan, and an early user, of Gitlab Community edition and recently crossed the commercial software Rubicon, and paid 39$USD for a single-user commercial Gitlab Enterprise Starter license. No, this is not an ad, or paid content. I don’t do affiliate schemes.

Gitlab in the code hosting & continuous deployment ecosystem

Gitlab Inc (Crunchbase, Bloomberg) got another round of VC funding, including a second investment from the legendary Khosla of Sun Microsystems (Java etc) & Hotmail fame. Gitlab is becoming a serious tech player in its own right. It’s an interesting example of a dual license, open core, commercial open source software licensing business model, with planet scale.

Differentiated by self-hosted, private cloud with continuous integration and continuous deployment, to warrant serious attention from engineers, sysadmins and DevOps people in coding shops, startups, IT departments and grassroots.

It’s importantly also similar enough to its mega-site competitor Github.com for serious coders. It’s a Github clone, with much much more.

The hosted SaaS Gitlab.com also has unlimited private repositories, attacking Github’s core business revenue stream.

Gitlab has Continuous Integration, Continuous Development and now Continuous Deployment with integration into Kubernetes and via Travis CI’s deploy tool DPL into Heroku and a dozen other PAAS, SAAS, IAAS aka Hosting Providers in old speak.

It would be nice if DPL worked with Heroku-esque clones like Flynn or Dokku, it does work with Deis. A potential devops project to develop on my shiney new Gitlab server.

Installation on Xenial

I am re-installing Gitlab Enterprise Edition on VMware Workstation on my lab server, I was previously running on LXD with LXC containers, but I ran into issues with Docker inside LXD/LXC.

LXD/LXC does supports Dockerized LXC containers, but I’ve encountered issues and life is too short for troubleshooting edge case setups, especially when its your own time and dime. There is support, and there is support.

Install Dependencies

Let’s assume the fresh, clean, dedicated, Xenial server is setup. Hostname, etc/hosts, etc/network/interfaces, SSH server and DNS. A standard host or server Linux admin.

Gitlab has one of the best installers in the business, based on Chef Solo called the Omnibus.

Instructions docs for Gitlab Enterprise Starter are found https://about.gitlab.com/downloads-ee/#ubuntu1604

Verbatim from the docs, install dependencies, choosing Postfix “Internet Site”

sudo apt-get install curl openssh-server ca-certificates postfix

Scripted Package Installation

Add Gitlab package and pipe the install script to install the packages

curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | sudo bash
sudo apt-get install gitlab-ee

Configure and Start Gitlab EE

sudo gitlab-ctl reconfigure

Browse and Login

In your favorite internet browsing application and device go to the URL and be redirected to change root password. Login with username root and new password.

Upload Software License

FLOSS lovers will find this morally wrong, but we now upload our license. Upload License · Admin Area · GitLab

Next configure, root username to something more meaningful, gravatars, add ssh key, colors, etc.

Projects · Dashboard · GitLab

More parts to follow.