As the information technology footprint grows in many corporations, so too does the role of a sysadmin. A modern sysadmin deals not only with physical machines and operating systems but also with myriad virtual systems, cloud environments, network devices, and container workloads. The complexity and number of systems managed, even in small companies, is typically one or more orders of magnitude higher than a few years ago.
Your role as a sysadmin consists of deploying, maintaining, updating, and ensuring that all these heterogeneous systems work correctly, guaranteeing that both customers and the business benefit from these technologies. No doubt, this is a dynamic job that provides plenty of opportunities for performing tasks that are challenging and exciting. It also entails learning new skills and working on stimulating projects.
However, due to the job's nature and the number of systems you manage, typically, you also have to perform several mundane tasks. Examples include applying a minor update on a group of servers or cleaning up some logs. You may be asked to report on installed software versions in preparation for an upgrade or in response to a security audit. These tasks, while simple, still take a long time to complete when combined with the number and variety of devices on which you need to perform them. Spending time with these tasks takes your time away from working on more valuable or more exciting activities.
While working on repetitive and boring tasks, have you ever felt a low sense of fulfillment or felt overwhelmed? If you have, you're not alone. I've heard that from colleagues throughout the years, and I have felt it myself.
[ Download now: A system administrator's guide to IT automation.]
Making a change
So what can you do to improve the situation and make better use of your time? The answer can be complex and, in some cases, require the company to address it systemically. For other problems, you can use your technical expertise to improve the way you work by automating these repetitive, mundane tasks.
When we think of automating an IT process, it's normal to evaluate spending the time and effort to develop automation artifacts to address large or complex issues. There are many benefits to doing this. You can realize the same advantages by applying automation to simple and repetitive tasks, especially when you can reuse the automation to manage hundreds or thousands of systems.
Some of these benefits include:
- Efficiency: Execute tasks more efficiently across a large number of targets, allowing the computer to do the hard work for you.
- Standardization: Run tasks in a consistent way, ensuring the same results every time. For example, avoid common distraction-led mistakes where you configure one device with lower-case characters and another with one upper-case character, leading to issues that are hard to troubleshoot later on.
- Less errors: Fewer people touching the systems lowers the probability of configuration mistakes or accidents leading to outages. For example, have you ever missed the WHERE clause in a DELETE or UPDATE SQL query?
- Personal fulfillment: Working on more fulfilling and intellectually challenging tasks typically leads to higher job satisfaction.
[ A free guide from Red Hat: 5 steps to automate your business. ]
How do I start?
Applying automation concepts to simpler tasks may also be a good way to get started with automation. You can see immediate benefits by tackling quick wins while learning and preparing to automate more complex issues later. In fact, that's how I started with Ansible a few years ago. I used Ansible to replace some scripts that ran periodic checks on a few hundred servers that I managed. I spent a few hours doing the initial configuration, and after that, I could use the same environment to automate these checks and many other small tasks, performing them quickly and consistently.
In my opinion, this is a good strategy for starting your automation journey. Look for an issue or task that you perform regularly and takes much of your time or is annoying to do, select your automation solution, and apply it to solve this issue while learning the inner workings of the solution and automation as a whole.
If you don't know where to start, here are some ideas of tasks that are good candidates for your first automation project:
- Connectivity tests
- Packaging maintenance: Install/update/delete packages
- Reporting installed application versions
- Managing users
- Resetting user passwords
- Cleaning up unused files such as core files and logs
- Executing a backup or restore of a system or configuration
For some people or some groups, using an automation solution may present challenges. Based on my experience, I've heard a few objections from teams trying to adopt and apply IT automation, particularly when using automation to address simple tasks. Let's discuss some of them:
It's quicker to run it manually
After setting up the automation solution the first time, creating an automation artifact may take less time than what is required to execute the job on many devices manually. Even if it takes a little longer the first time, you'll benefit from the automation for any subsequent execution of the same task.
Writing an automation artifact/playbook is too much effort
There's no doubt that developing automation artifacts requires effort. Executing tasks manually also requires effort. In many cases, by writing automation, you change from blindly running repetitive tasks to thinking holistically about the scenario you're trying to automate. It may be more challenging and more rewarding in the end. In addition, by freeing up some time, you can optimize and improve these tasks, leading to better and more valuable results. You can also apply some of these improvements to other scenarios or discover other areas to automate while solving this issue.
I won't need to do this again
Even in cases where you need to run the whole task once, you may still need to execute it in a large number of machines. Automating these tasks provides all the benefits discussed before to this larger-scale project. Also, often you will realize that you need to execute this task again after all; by then, you may need to rethink the solution you used to resolve it the first time. Automation works as documentation to resolve a particular issue that you can refer back to. Finally, while automating the task at hand, you can consider adding more flexibility—like variables—allowing the same automation to apply to other cases.
[ Looking for more on system automation? Get started with The Automated Enterprise, a free book from Red Hat. ]
Where to go from here?
By automating simple and repetitive tasks, you can complete them more efficiently, freeing up some of your time to work on more important, or perhaps, more exciting, projects.
The automation journey may be challenging, but it's definitely one I recommend. Give it a try, and you may collect many benefits for your business and for you personally.