Overcast - a provider-agnostic toolset for managing multiple servers

I thought I’d share a quick post about this tool Overcast, which I use sometimes for managing multiple servers, for example when I want to update the OS on 10 servers without having to log into them each individually. It’s better for short work like updates. For anything complex you probably need Ansible.

There are many other approaches for solving this problem, as always the balance to be struck is the amount of learning curve and/or setup time required versus the amount of time you will save when it’s all up and running.

https://github.com/andrewchilds/overcast

For context some of the other options I use in this area are:

SSH Config

Simply using an ~/.ssh/config file to give all your boxes nice short names and automate the login, here’s an example of one of mine. This is fairly straightforward but worth mentioning in case anyone was not using this.

# forum.ehealthireland.ie on Vultr (18.04)
  Host ehealthireland
  HostName forum.ehealthireland.ie
  User marcus
  IdentityFile ~/.ssh/id_rsa

Ansible

a Python based configuration DSL which does a LOT more than what Overcast can do, but on the other hand is somewhat ‘bigger’ and has a longer learning curve. It’s ideal for scripting multi-step processes, but (unlike and Bash or Ruby script) it is idempotent so it will only apply a change if the change is necessary. Essentially you declare the end-state you want, and Ansible will make the changes necessary to make that state happen.

Pavilion Ansible resources

https://github.com/paviliondev/pavilion-ansible
https://github.com/pacharanero/ansible-discourse-updater