One of the first exciting projects I’ve worked on here at Red Nucleus is the implementation of “an internal github” as quoted from one of my developers. I loved this idea and jumped on this as soon as possible. The developer who brought this too me got me integrated in what he had done on the project which consisted of mainly messing around with a few virtual appliances but nothing concrete. One of the largest hurdles I faced during the project was integrating a Linux server into our active directory environment for authentication purposes.

I started testing out git management front ends and eventually settled on Gitlab which like almost every git front end software is built to run on a Linux system. My initial forays were done with a Debian 7 install and following the instructions provided in this guide here. This experience while useful in my eyes looked unsustainable as a process for maintaining the installation. I then began looking at the Omnibus installer packages they offered and using the Readme was able to get a working Gitlab setup on a Debian 7 machine in mere minutes.

It was then that I realized that we needed to join this Linux VM to our Active Directory domain and this integration into a Windows Environment is the focus of this post. I soon found out that joining a Debian 7 or CentOS 6.5 VM to the domain was an absolute hassle. It is a mishmash of software that requires a deeper understanding of Linux than I have. I soon stumbled across a project called realmd and attempted to integrate this into my existing Debian 7 Gitlab VM with no success. Even though their build page offers some insight I was never able to build realmd on Debian 7 even with both the systemd and journald disabled flags. Mostly due to outdated software packages and missing systemd. At this point I threw in the towel with Debian 7 and began testing in CentOS 6.5. CentOS had many of the same issues Debian 7 had in regards to building realmd but it includes adcli, the software doing the grunt work in the back of realmd. I was able to successfully join CentOS 6.5 to our domain using this guide but the entire process fell apart when it requires editing of several conf files and my lack of understanding in regards to the naming conventions on some configuration areas, most notably admin_server vs. kdc in krb.conf. While I was able to login with cached active directory credentials it somehow was never able to reconnect to the domain.

Thankfully it was around this time Gitlab released the CentOS 7 version of the Omnibus installer with systemd support. Very excited I installed a new VM and realmd is installed by default! I was able to join the CentOS VM to the domain in all of 15 seconds and copied my working gitlab.rb file I worked out ages ago and had a working Gitlab server, on our domain, connecting to our network share in less than 30 minutes. Overall the takeaway from this article is that we found connecting a linux machine to our active directory to be a huge hassle on the past generation of server operating systems but this new group being released, CentOS 7 and Debian 8 are very exciting for me and I am glad they have made running a mixed environment so much easier now.