2 min read, 300 words

CD Blog pipeline, AKA overkill

I wanted a blog, so naturally I set about evaluating the myriad of static site generator options out there. Anything Ruby based was out, because, well, Ruby. Lektor looked nice, but wasn’t really there yet.. I saw Hugo mentioned and decided to give it a spin.

Of course, once I settled on the static site generator, I obviously had to stash it in source control. I didn’t want to use GitHub, just for sanity’s sake, so the next step was clearly setting up a gitlab instance. After that, obviously I needed a CD pipeline to deploy on commits to master, which meant integrating a Gitlab deployment workflow with the Mail-in-a-box [https://mailinabox.email/] server I had set up with my vanity domain. 9 hours later, everything was assembled.

This process led to me learning how to setup docker on CoreOS, write a gitlab-ci pipeline, deal with artifacts in gitlab, set up build variables in gitlab to move ssh-keys around, learn how mail-in-a-box handles its website hosting, have gitlab-ci build Hugo and deploy it to a different server.

Lessons learned:

  • Gitlab-ci build steps are run in isolated environments when using docker, you have to use the generated assets rather than expecting the build step to have left files around for you to copy/deploy somewhere.
  • Docker is interesting, and a completely new beast for me, have to play with this more.
  • Static sites are awesome.
  • Gitlab is awesome and has a ton of functionality and features to play with.
  • I over-engineer things (there are now two containers and 3 servers involved in publishing this blog.)

After all that… now I have to write a blog… consistently. Ugh.

New Beginnings DevOps Days NYC 2016

comments powered by Disqus