What is Ansible?
Ansible is an open-source IT automation engine that can remove drudgery from your work life, dramatically improving the scalability, consistency, and reliability of your IT environment. This guide will explore how to automate repetitive system administration tasks using Ansible. For more in-depth learning, Cloud Academy offers an Introduction to Ansible learning path.
What is Ansible and what can it automate?
Ansible can automate three types of tasks:
- Provisioning: Set up the various servers you need in your infrastructure.
- Configuration management: Change the configuration of an application, OS, or device; start and stop services; install or update applications; implement a security policy; or perform a wide variety of other configuration tasks.
- Application deployment: Make DevOps easier by automating the deployment of internally developed applications to your production systems.
Ansible can automate IT environments hosted on traditional bare metal servers, virtualization platforms, or in the cloud. It can also automate the configuration of a wide range of systems and devices such as databases, storage devices, networks, firewalls, and many others. The best part is that you don’t even need to know the commands used to accomplish a particular task. You just need to specify the desired state, and Ansible will handle the rest. For example, to ensure that your web servers are running the latest version of Apache, you could use a playbook similar to the following, and Ansible would manage the details.
In this playbook, the line that actually installs or updates Apache is yum: name=httpd state=latest. You specify the name of the software package (httpd) and the desired state (latest), and Ansible does the rest. The other tasks in the playbook update the Apache config file, restart Apache, and enable Apache to run at boot time. Take a read at one of our previous blog posts on how to build Ansible playbooks.
Why Ansible?
Many other IT automation tools are available, including more mature ones like Puppet and Chef, so why choose Ansible? The main reason is simplicity. Michael DeHaan, the creator of Ansible, aimed to develop a tool that is easy to remember and use even after a long break. He accomplished this by using YAML, a simple configuration language. In contrast, Puppet and Chef use Ruby, which is more difficult to learn. This makes Ansible especially appealing to system administrators.
DeHaan also simplified Ansible deployment by making it agentless. Instead of installing an agent on every system you want to manage (as required by Puppet and Chef), Ansible only requires that systems have Python (on Linux servers) or PowerShell (on Windows servers) and SSH.
What is Ansible? A New Learning Path
Although Ansible is easier to learn than many other IT automation engines, you still need to acquire some knowledge before using it effectively. QA's Introduction to Ansible learning path can help you get started. This learning path includes three video courses:
- What is Configuration Management?: A high-level overview of configuration management concepts and software options.
- Getting Started with Ansible: Covers everything from Ansible components to writing and debugging playbooks in YAML.
- Introduction to Managing Ansible Infrastructure: An overview of Ansible Tower (Red Hat’s proprietary management add-on to Ansible) and Ansible Galaxy (a place to find and share Ansible content).
Hands-on practice is crucial when learning a new technology, so the learning path includes two labs:
- Getting Started with Ansible: Create your first playbook to build a LAMP (Linux, Apache, MySQL, Python) stack on an EC2 instance.
- Ansible: Deploying Web Applications: Learn about roles, templates, and handlers by deploying a Python application.
You can also test your knowledge of Ansible by taking the quizzes provided. Watch this short video, taken from the Getting Started with Ansible course, to explore the most common Ansible use cases.
Conclusion
Whether you need to simplify your administration tasks or you're interested in becoming a DevOps professional, Ansible is an excellent place to start. Learn how to streamline your IT operations with the Introduction to Ansible learning path on our Platform