Automation, Orchestration and IoT

Providing digital transformation through DevOps

Why We Never Repeat Ourselves

Sam Lay

Sam Lay

Sam is a infrastructure engineer at The Network Factory. He's a fan of Ansible, Linux and open-source software. He makes some superb seitan soybean satay stirfry.

WannaCrypt screenshot Here at The Network Factory, we set up a lot of computer systems from scratch. From virtualisation servers and company laptops to IoT and Raspberry Pi-based embedded solutions, we do a lot of software installation and configuration, so it's really important that this is done as efficiently as possible. Ansible is a crucial part of our approach to this process.

For each possible role a computer can serve, a distinct selection of software will be required to enable the computer to serve that role. Take for example a laptop to be used for development of software or web services. That computer will require the ability to run the code of any number of programming languages, to store databases for use in the software or web services being developed, code editing software to use to actually write the code, version tracking software to document changes made to the code, and much more. It will also need all the usuals - web browsers, email software, an office suite, etc. It all adds up.

The problem

We could go through and manually install each of these, but it would be a bit inefficient and time-consuming. And what if we're asked to set up 10, or 20, or 50 of these laptops with the same software selection? Our bill would be far higher than it needs to be and we'd get home late. This is why we use Ansible.

The solution

With Ansible, the deployment of these software selections can be automated in a way that is fast, consistent and efficient. Ansible also provides the flexibility to vary software selection based on different roles or combinations of roles that a particular computer needs to serve. For our software development example, we could define a software programmer role with a selection of commonly-used software development applications. That role could then be combined with the more general computer-user role (adding in our web browsers etc). Our programmer role could also be refined to become specific to a particular programming language.

What if it fails?

There's no need to worry about hardware failing. After all, you do have all your work backed up... right? When your hardware fails (and it's only ever a matter of time), there's no need for hours to be spent restoring a new laptop to the same state as the machine that failed. Ansible can restore in minutes what would otherwise take hours - simply replace the faulty hardware, tell Ansible what role(s) the computer needs to serve, then let it work its magic.

To learn more about our services and what we can do for you, call us on +44(0)207 100 666 8 or email us at and we'll find a dependable, cost-effective solution that works for you.