Tuesday, May 29, 2018

Learning Ansible and Vagrant or why I really need to put myself to date

For some time, I have heard Ansible this, Vagrant that, Docker and Kubernetes, Cassandra, and a bunch of other names of applications, services (or micro-services, whatever that is), APIs and whatnot, these are all foreign to me and come surprisingly fast to me in a time when I'm trying to pick up coding again because I want to try my hand again at doing something interesting.
I have learned first that I keep doing things the wrong way as I go through the Ansible from Beginner to Pro by Michael Heap (which by the way needs some revisioning as I find some of the wording confusing as hell) when doing development and provisioning of my environment.
So let me backtrack here and explain what I’m talking about, some years ago I used to work at a company that handled auto parts for the entire country and our plans of expansion were putting a real strain on our current inventory system (something built in Access 2010) so the company needed something different, enter me as a Junior Programmer to figure things out together with my boss, we handled it the best we could but in the end we did not manage to push the project through and parted ways with the company.
From my tenure there I learned a lot about PHP, jQuery and MySQL together with Linux, but I was still lacking in many ways the knowledge I needed to do what the company needed (I was Junior anyway, but you get my drift, you want to eat the entire world). As time has gone by I have kept up with programming through different methods, either building Bash or Python scripts, a small website to keep track of something very specific or some random requirement from a friend.
About a year ago I decided to get back into the whole thing now that I have figured out how to really handle my free time and through the magic of Humble Bundle I have acquired about forty to fifty or so books (of which I have used maybe one or two, I am behind on reading but I’m doing my best to keep up) which lately include Web Development (I mentioned previously this as I was interested in the whole Static Sites thing).
For this whole purpose I wanted a server, a real rack-mounted server, which now sits on my desk (and works as a nice extension of it) that I got for cheap (thanks eBay!). At this point in time the PowerEdge 1850 has been partially upgraded (still waiting for other parts), has the highest version of ESXi it can handle (which is 4.1 update 4) and has been tested out to see how it performs and for the price I spent I can’t complain, it does a very good job and frees my laptop from the hassle of having a test environment on the same machine I use for other stuff. My problem was that I needed to handle the deployment and installation of the machines and I did not want to go through the whole damn hassle of replicating everything item by item, so I went and looked through the books I see the Ansible thing and I think, well, better give it a shot (I know I could try Docker and containers but bear with me as I struggle to figure out most of the stuff I have to get up to date with!).
So far trying Ansible and Vagrant have been as usual a very mixed bag of results, Ansible was easy to install, Vagrant not so much and it was throwing a fit due to the version of VirtualBox I had installed so I had to download everything from the respective websites and install it on my laptop, after figuring that out I got to work on some playbooks and provisioning, when I saw how it worked and what it did I was shocked, I had thought about this same idea a couple of years ago and even thought about how to do it, I knew there had to be an easy way to deploy virtual machines and then push a script or something to install all the stuff it needed before it could get to work, little did I know that such a thing existed in the form of Ansible (not dissing or ignoring Chef or Puppet, Ansible is what I have at hand and that’s what I’ll work with).
My other problem with Ansible is the way playbooks are coded, at first it felt a bit esoteric but once I understood the logic I figured out that it was more of a be very careful of how you write stuff otherwise it won’t work approach than anything else, frustrating at first but once you get the hang of it the thing seems pretty obvious what you have to do and how to do it. Also, there seems to be a considerable number of playbooks available to go through, so I’ll have to give them a check once I am done with this book and get everything setup the way I want it.

No comments:

Post a Comment

Installing OSSEC 3.7.0 on Debian 11 (Bullseye) How-To

Now that version 3.7.0 has been released I took another deep dive into how this is compiled from Source, as usual I brought this onto me bec...