So If you read my last post (it was really long sorry), you’ll see right at the end the current deployment. I had tried a few managers to be able to deploy/scale the whole system, but it really overcomplicated the whole thing. Chef looked really good (I can’t remember the other one), but it was problematic and just didn’t suit.
Instead I kept with the scripts I had written for the time being. They are in no way good enough to share as they are very customised to my setup but they achieve what I need. However to run them takes quite a bit of initial manual work.
So what do I need from a system:-
- It has to just work, not go installing stuff it depends on to run.
- It has to be able to split the setup into an initial and running level.
- It has to be able to be told easily about a new server and what role it will be, then do the initial setup and onto the relevant running level.
- It MUST be simple to use and understand. I’m getting a bit sick of having to read through how to configure weird stuff because someone decided to do things completely differently to how you’d expect it to work.
- It must have very low resource requirements. I want to run this from a management droplet that already runs nagios, so it can’t sit there just eating resources while it has nothing to do.
I saw a very quick video on Ansible with someone using it for Raspberry PI’s (something else I have far too many of) and thought right away I should look into that. So here I am. I’m going to do some testing with Ansible.
Initially all I’m looking for it to do is handle the initial setup that I already have scripts for.
- Create a new user, add it to the sudo group, set a password and copy the SSH keys.
- Reconfigure sshd to deny root connections.
- Set the server’s timezone.
- Set the keypad option in nanorc.
- Set the .bashrc for root to use a red prompt.
- Install some basic packages such as screen and htop
- Create a swapfile
- Install and configure NTP
- Setup IPTables (I dont use UFW, I prefer to deploy an iptables file and have this restored when the loopback interface is loaded).
I’ve had a quick look on DigitalOcean community (I love the resources there), but the stuff about using Ansible seems a little more throw it all in one file rather than properly split them out like I saw in the video. I think splitting out each task is a must to be able to understand what’s going on and making changes.
The video I’m referring to is https://www.youtube.com/watch?v=ZNB1at8mJWY
So that’s the start, let’s get going and see what I can screw up