Introduction to Ansible and How industries are solving challenges using Ansible
What is Ansible?
Ansible is an open-source automation tool, or platform, used for IT tasks such as configuration management, application deployment, intra service orchestration, and provisioning. Automation is crucial these days, with IT environments that are too complex and often need to scale too quickly for system administrators and developers to keep up if they had to do everything manually.
Ansible is all about automation, it requires instructions to accomplish each job. With everything written down in simple script form, it’s easy to do version control. The practical result of this is a major contribution to the “infrastructure as code” movement in IT.
Advantages of Ansible
- Free: Ansible is an open-source tool.
- Very simple to set up and use: No special coding skills are necessary to use Ansible’s playbooks (more on playbooks later).
- Powerful: Ansible lets you model even highly complex IT workflows.
- Flexible: You can orchestrate the entire application environment no matter where it’s deployed. You can also customize it based on your needs.
- Agentless: You don’t need to install any other software or firewall ports on the client systems you want to automate. You also don’t have to set up a separate management structure.
- Efficient: Because you don’t need to install any extra software, there’s more room for application resources on your server.
History of Ansible
- In February 2012 the Ansible project began. It was first developed by Michael DeHaan, the creator of Cobbler and Func, Fedora Unified Network Controller.
- Initially called AnsibleWorks Inc, the company funding the ansible tool was acquired in 2015 by RedHat and later on, along with RedHat, moved under the umbrella of IBM.
- In the present, Ansible comes included in distributions like Fedora Linux, RHEL, Centos, and Oracle Linux.
Important terms used in Ansible
- Ansible server: The machine where Ansible is installed and from which all tasks and playbooks will be ran
- Module: Basically, a module is a command or set of similar commands meant to be executed on the client-side
- Task: A task is a section that consists of a single procedure to be completed
- Role: A way of organizing tasks and related files to be later called in a playbook
- Fact: Information fetched from the client system from the global variables with the gather-facts operation
- Inventory: File containing data about the ansible client servers. Defined in later examples as hosts file
- Play: Execution of a playbook
- Handler: Task which is called only if a notifier is present
- Notifier: Section attributed to a task which calls a handler if the output is changed
- Tag: Name set to a task which can be used later on to issue just that specific task or group of tasks.
Microsoft automates to simplify and scale with Red Hat
Microsoft Corporation develops, manufactures, and supports software, consumer electronics and computers, and related services. To simplify and scale at pace with market demands, Microsoft worked with Red Hat to create a scalable, technology-agnostic automation framework to reduce manual workloads with efficient tools and processes and mitigate performance and security issues with standardized, tested code
Microsoft needed to address increasing complexity across their corporate network infrastructure — comprised of tens of thousands of endpoints — that connects Microsoft locations worldwide. Their issues were compounded as code created by development and engineering teams was not version-controlled or peer-reviewed, leading to duplication and quality issues.
Using Red Hat Ansible Automation Platform and working with Red Hat Consulting, Microsoft created a standardized, centralized network automation environment that reduces routine, repeatable tasks and complexity.