Foundations of Ansible

Explore essential Ansible concepts, terminology, and tools, then set up your environment to start writing  your first Ansible playbook.

Start your Ansible Automation Platform Trial

In this lesson, we will introduce Ansible and Ansible Automation Platform and learn about control nodes and managed hosts.

In this lesson, you will:

  • Learn about Ansible and Ansible Automation Platform. 
  • Learn about control node and managed hosts.

Overview of Ansible

Ansible is an open source, command-line IT automation software application written in Python. It can configure systems, deploy software, and orchestrate advanced workflows to support application deployment, system updates, and more.

Ansible’s main strengths are its simplicity and ease of use. It also has a strong focus on security and reliability, featuring minimal moving parts. It uses native transports and a human-readable language that is designed for getting started quickly without a lot of training.

Red Hat Ansible Automation Platform

Ansible Automation Platform is an enterprise-grade subscription product built on the foundations of Ansible but with the additional supported features and functionality necessary for mission-critical automation deployments. It combines more than a dozen open source community projects into an integrated, streamlined product. Ansible Automation Platform can be run on-premise, in the cloud, or at the network edge.

Ansible makes use of control nodes and managed nodes. Figure 1 depicts this.

Figure shows connection between control node and managed nodes.
Figure 1: Ansible core components.

Control node

A control node can be any computer that meets basic software requirements including laptops, shared desktops, and servers. Ansible is executed from the control node, which is the machine used to run Ansible commands via command line interface (CLI) tools such as ansible-playbook, ansible-navigator, ansible, and others (more on these tools in later learning paths).

You can also run Ansible in containers known as automation execution environments.

Managed nodes (hosts)

Managed nodes are the target devices being automated including servers, network appliances, or any computer. Because Ansible is agentless, it is not usually installed on managed nodes.

Ansible uses communication methods, such as SSH for Linux systems or WinRM for Windows-based systems, to communicate between the control node and managed nodes.

When automating Linux and Windows, Ansible connects to managed nodes and pushes out small programs to them called Ansible modules. These programs are written to be resource models of the desired system state. Ansible then executes these modules (over SSH by default) and removes them when finished. These modules are designed to be idempotent, so that they only make changes to a system if and when the desired state has not been achieved.

For automating devices such as network components or other IT appliances where modules cannot be executed, Ansible runs on the control node. Since Ansible is agentless, it can still communicate with devices without requiring an application or service to be installed on the managed node.

To enhance execution capacity, Ansible Automation Platform can distribute automation jobs across execution nodes using a technology known as the automation mesh. Unlike the control plane, which handles orchestration and coordination, these nodes operate independently, focusing solely on task execution.

Previous resource
Overview: Foundations of Ansible
Next resource
Essential Ansible concepts