Engineers, sysadmins, and DevOps roles' job responsibilities include answering dozens of emails, upgrading hundreds of servers, and patching all the systems in your data center or favorite cloud.

All of these tasks take a considerable amount of time to complete—and they are sometimes boring but always important. A slight mistake can open up a potential threat to the security of the entire system. For example, failing to apply a security patch can make a system vulnerable. And let's be honest, people make mistakes. But what if you could automate these mundane tasks, save some time, and simplify your team's tasks?

[ Download now: A system administrator's guide to IT automation. ]

What is automation?

Let's start by answering this question: Why is there a need to automate your daily tasks? It's simple, as discussed above. It usually takes a lot of time to manually repeat the same tasks daily and it's also prone to mistakes if you miss slight details. With all the advancements in technology, it's quite natural to take these for granted.

For example, there are still sysadmins who install servers by hand, make backups by logging into each system, and manually upgrade packages. These jobs don't necessarily take much expertise to complete. Let's estimate 15–20 minutes for each of these tasks. Once an automation framework is set, sysadmins can simply repeat these tasks and move on to more difficult projects requiring time, attention, and skills.

The benefits of automation can be:

  • Being productive and focusing on tackling difficult tasks at hand
  • Saving time and increasing overall productivity
  • Reducing documentation
  • Storing all automation scripts and tools in a free, hosted software development and version control system such as GitHub
  • Reducing mistakes

What tasks should be automated?

Here are a few different ways of thinking about which tasks to automate.

Repeatable and routine tasks

These are the tasks that need to be carried out on a regular basis. For example, I need to update my GitHub fork, including the latest changes from an upstream repository. Other examples include:

  • Collecting the system backup logs
  • Sending out a weekly system upgrade email
  • Carrying out upgrades

Simple yet time-consuming tasks

You might be required to collect system utilization in your lab or send a daily email to the team about system availability. There will be some tasks that take a lot of time for the system to complete, such as a continuous integration/continuous delivery (CI/CD) pipeline or a particular installation. It's always better to set some alerts in such cases. I use an email alert that I receive after each Jenkins pipeline completion. This way, I can keep track of progress and also use the time to do other tasks.

Complex tasks

The combination of several jobs, such as installing an operating system (OS), installing the latest packages, and making sure a weekly CI/CD pipeline is run into the system, is not complex, but think of repeating these steps for hundreds of systems in your data center or cloud environment. Other examples include setting up load balancers and proxy servers or making entries for systems in your Domain Name System (DNS) infrastructure.

What it takes to learn automation

As a sysadmin/DevOps engineer, automation should always be a top priority. It doesn't take much time to learn the easy tools available, which make our tasks simpler. In addition to scripting skills, Ansible is one configuration management tool that I use to do my automation tasks.

Using Ansible, I have set up an infrastructure that automatically installs the operating system to all of my systems in our data center using Red Hat Satellite. The Ansible playbook installs the latest packages and runs automation to set up our DNS and DHCP systems on a per-team basis. I have a Jenkins pipeline configured that completes the OpenShift installations on our systems and sends an alert to my email.

I maintain a central repository that stores Ansible playbooks and scripts that I update to ensure all the documentation and instructions are available in a single place. This is especially important so that other team members can consume and submit their own changes, saving a lot of time. Learning Ansible, Jenkins, and Terraform was one of the best decisions that we made as a team. Essentially, I tend to view all repeated tasks as automation candidates after working on them frequently.

[ A free guide from Red Hat: 5 steps to automate your business. ]

Conclusion

I have given various examples of simple, repeatable tasks that are often time-consuming. If properly planned, and with the help of some tools, these tasks can be completely automated and stored in a centralized repository like GitHub. By automating these steps, you can save a lot of time and increase team productivity. Most importantly, you can avoid making mistakes when a complex task is involved, which usually depends on taking input from one segment of the system and passing it on to another segment, and then moving on to completion.

It's not always necessary to automate every job. If you feel automation is difficult, you can usually start by working with small, low-risk tasks and then build up your repository by partially automating other tasks. Automation will bring a huge change to the team's work style in the long run.

In summary, it's never about automating yourself out of a job—it's about deciding when you have done enough of the work and want to change your focus.


저자 소개

I work as a Solutions Engineer at Red Hat and my day-to-day work involves OpenShift and Ansible. I'm highly passionate about open source software, cloud, security, and networking technologies.

UI_Icon-Red_Hat-Close-A-Black-RGB

채널별 검색

automation icon

오토메이션

기술, 팀, 인프라를 위한 IT 자동화 최신 동향

AI icon

인공지능

고객이 어디서나 AI 워크로드를 실행할 수 있도록 지원하는 플랫폼 업데이트

open hybrid cloud icon

오픈 하이브리드 클라우드

하이브리드 클라우드로 더욱 유연한 미래를 구축하는 방법을 알아보세요

security icon

보안

환경과 기술 전반에 걸쳐 리스크를 감소하는 방법에 대한 최신 정보

edge icon

엣지 컴퓨팅

엣지에서의 운영을 단순화하는 플랫폼 업데이트

Infrastructure icon

인프라

세계적으로 인정받은 기업용 Linux 플랫폼에 대한 최신 정보

application development icon

애플리케이션

복잡한 애플리케이션에 대한 솔루션 더 보기

Virtualization icon

가상화

온프레미스와 클라우드 환경에서 워크로드를 유연하게 운영하기 위한 엔터프라이즈 가상화의 미래