Disclaimer: I wrote all this on my phone while “shopping”. Please excuse any misspellings or grammar problems.
It’s a new year and a new start for the server that runs ronniechung.com. The process took far FAR longer than I originally expected. This was because I was learning while doing. So what changed?
First off, ronniechung.com no longer runs on bare bones. What I mean is that the server that hosts the site is now a VM. The physical server is the VM host, it runs Debian. The hypervisor as you can probably guess is KVM. The VM that runs the site is running Ubuntu still because I didn’t want any distro changes to affect my scripts, custom web apps, etc. The process of getting all this setup was actually easier than expected. Only took a few days to get it all configured and ready for deployment.
What really took a long time was getting the VM setup. I wanted to learn configuration management using either Puppet or Ansible. Puppet was the obvious choice being that it was so popular, but as I quickly learned it wasn’t the right solution for me. The time spent learning Puppet though (about a week) was worth it for sure. The biggest problem with learning something new while attempting to apply it to a “production” system at the same time is you’re almost guaranteed to make mistakes or do things that aren’t exactly “best practices” first time through. And that’s exactly what happened.
A few days ago, everything was set and all tests were passing. I switched the DNS back thinking it was time to bring things back to normal. I was wrong… First I wanted Ansible to handle everything including restoring files (like the pics of the beautiful ladies ;)). While writing the playbook for that, I decided to update everything to follow “best practices” which I learned the same day. Finally late into New Year’s Eve, I had everything updated and finished. Ran one more test to make sure I didn’t accidentally screw something up (I did) before going to sleep. Checked in the morning and well, I made a couple mistakes in regards to restoring of files. Simple fixes but still annoying.
As you can see today though, everything is fully operational and all managed by Ansible. Best part is if I ever needed to rebuild its just a few steps and less than 30 mins to do. There’s still a couple things to do, I don’t have VM backups setup yet for instance, but all the major work is finished. Quite happy with the setup right now but if you know me you’ll know I like to keep changing things. I get bored real easy 🙂
Till next time…
EDIT: Fixed a spelling error.