Nov 4 2009

Chasing The CI Grail - ESXi, Debian and Git

Category: Open Source | ToolsAlexRobson @ 07:00

As I said in the intro, this series of posts is all about me trying to find a solution that I like for continuous integration. It’s about the search. It’s about the learning process. It’s about seeing how many times I run into a wall before getting out of the maze or discovering there’s no end. The title is a dead give-away but in case you missed it, my journey begins using trying out git for source control.

Goal
Last week I decided it was time to actually look into what it would take to get an internal git solution together. If you’re new to this blog, you might not know that I love git. Well, I do. What I didn’t love were my options for running it on Windows. I don’t mind the idea of developers making their root git directories shared amongst the Active Directory Developer’s group. I actually think that’s an acceptable way to provide read-only access so that others can pull/clone/fetch/etc from their peers. But for my primary CI build server, I want a separate, more tightly controlled git repository so I know when and how the source gets there.

Git
Git has 3 ‘bits’ to it: git (core), git-daemon and git-web. Each of these rely on POSIX. That means to run them in Windows you’d have to try something like CYGWIN. Now, I’m not knocking CYGWIN, but it sounded too much to me like I was trying to force something unnatural. Why not just run git the way holy Torvalds intended on an OS of his own grand design?

Git core is what you’ll find the most documentation about because by itself, it’s a complete source control system. Git-daemon is a service that you can use to natively serve up git repositories to the outside world. It’s really not ideal for anyone doing development on Windows boxes though because it expects that anyone interacting with it will have accounts on the box/workgroup/domain that the host OS knows about. Git-web is a terrific web front end for exploring git repositories that runs on Apache. I can’t really say enough nice things about it because I’ve literally never seen anything integrated that easily and perform so well. My favorite feature so far? You can grep a repository’s files from the web interface and it’s lightning fast.

Where To Get It
I’m using Debian, so I apt-get installed my way there. It’s a simple, clean install experience and you don’t even have to recompile the kernel. If you’re curious about using git on windows, I can’t recommend msysgit highly enough.

Debian
Debian was actually not my first choice for OS. I was going to try several different distributions that I had experience with, starting with OpenSUSE but in the years that have passed since I tried OpenSUSE they’ve made some changes to it that made it difficult to get git setup according to some of the useful guides I’ve found.

After several disappointing hours of fiddling with OpenSUSE, I decided to try Debian based on the recommendations of Dave Purdon and Evan Hoff. I have to say, I really like Debian. It’s clean, simple and everything’s where I expect it to be (and where most git-related walk-throughs tell you they’ll be).

Where To Get It
The best way to get your hands on it is using microTorrent and the torrent(s) for Debian. CD disc 1 is sufficient to get your install started although you will end up pulling a few things down from a mirror of your choice to complete the install.

ESXi
I never questioned that I’d be running these servers as virtual machines. And even though I have experience with ESX and how awesome it is, I don’t currently have access to the company ESX server. So to get started I was considering workstation or virtual box or something and Evan Hoff recommended I look into ESXi, VMWare’s free-esque ESX package. If you’re unfamiliar with either, ESX[i] is a Type 1 hypervisor meaning it runs on bare metal. This means no stinky host OS to gobble up your precious resources. ESXi requires you only use it on boxes with 1 processor (up to 6 cores) amongst other things, so I re-provisioned my desktop as my ESXi server. It’s down-right dreamy. ESXi is missing some of the more spectacular and magical things that it’s commercial big brother can do, but heck; it’s FREE.

Where To Get It
ESXi is available here and you do need to register for it if you would like to continue using it after 60 days. The vSphere client software can actually be downloaded from a URL on your ESXi server once it’s up and running.

Important Note:
If you happen to try it out for yourself, beware that you will have to hack about with the Vitural Sphere client to get it to run on Windows 7. (read about how to do that here)

Next Steps
So, shortly after getting ESXi installed, I spun up a VM for Debian, got Debian installed, apt-get installed git, git-daemon and git-web and then promptly ran into a wall. Next post I’ll talk about getting past the road block and go into a lot more step-by-step detail (as well as provide more links and resources).

Tags: ,

Comments

1.
Mike Mike United States says:

Awesome...
So when you going to start blogging about things I can actually understand? ;P

Hows your Win7 performance on top of ESXi? And does that buy you any nice backup features (like running a win virtualpc does, where you can just copy the .vhd)? I've been meaning to try ESXi out ever since I read this, but I've been busy with RL.


Add comment


(Will show your Gravatar icon)

  Country flag

biuquote
  • Comment
  • Preview
Loading