---
title: "What is Ansible?"
description: "Do you configure multiple servers with similar software configuration stacks? Imagine the time you'd save if you automated those redundant tasks. Ansible can help you find out. With Ansible..."
url: https://www.inmotionhosting.com/support/edu/ansible/what-is-ansible/
date: 2019-12-09
modified: 2025-11-14
author: "InMotion Hosting Contributor"
categories: ["Ansible Tutorials"]
type: post
lang: en
---

# What is Ansible?

Do you configure multiple servers with similar software configuration stacks? Imagine the time you’d save if you automated those redundant tasks. [**Ansible**](https://www.inmotionhosting.com/ansible) can help you find out. With Ansible automation software you can define to-do task lists to deploy and manage remote servers from a central workstation or web server.

- [Describing Ansible](#what)
- [Requirements for Ansible](#requirements)
- [How does Ansible Work?](#how)
- [Ansible Community](#galaxy)

## Red Hat Ansible

**Ansible**, by [Red Hat](https://www.redhat.com/en/technologies/management/ansible), is designed to provide an easy-to-use framework for managing deployments with a minimal learning curve. You don’t need to learn a programming language. Files are human-readable with documentation and examples within configuration files. Users at all experience levels can quickly get started with our [Ansible installation guide](https://www.inmotionhosting.com/support/edu/ansible/).

Ansible is scalable with new [integrations](https://www.ansible.com/integrations) and modules being developed regularly. This, along with its ability to connect with[ Kerberos](https://docs.ansible.com/ansible-tower/latest/html/administration/kerberos_auth.html#) and other authentication protocols, enables you to automate more tasks and focus on your goals.

## Requirements

There are only three requirements for the control (management) node:

- A workstation or server with[ Secure Shell (SSH) access](https://www.inmotionhosting.com/support/server/ssh/how-to-login-ssh/), available with our [Cloud VPS](https://www.inmotionhosting.com/cloud-vps) and [Dedicated Hosting](https://www.inmotionhosting.com/dedicated-servers) plans
- [Python version 2.7 or 3.5+](https://www.inmotionhosting.com/support/server/linux/find-python-version/)
- [CentOS](https://www.inmotionhosting.com/support/edu/software/centos-server-overview/), [Debian](https://www.inmotionhosting.com/support/product-guides/cloud-server/debian-8/), Arch, BSD, or [other Unix-based Operating System](https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html) (OS), or macOS

Other IT automation solutions require database management and/or a dedicated server for module management. Ansible is *agentless* and decentralized as your local machine credentials handle remote server management.

Save computer resources and manage Ansible automation with our CentOS, Ubuntu, or Debian [Cloud VPS](https://www.inmotionhosting.com/cloud-vps) Hosting plans.

## How Does Ansible Work?

A basic Ansible installation works with these basic components in [YAML syntax](https://docs.ansible.com/ansible/latest/reference_appendices/YAMLSyntax.html):

### Playbook

An **Ansible playbook** details a deployable configuration for remote hosts. Within each set of plays, each task runs a **module**, with variables if needed, on a target node in sequential order.

### Module

**Ansible Modules** are small programs with commands which add functions to your deployment. Ansible runs modules on the target node and removes them upon completion of the task. If a module runs more than once, only new changes are made to conserve network resources.

For example, a WordPress playbook might include tasks with separate modules to install WordPress, specific plugins, and themes with variables specifying the domain, username credentials, and plugin settings.

There are three ways to execute Ansible modules:

- Stand-alone Ansible commands
- Within playbook tasks
- Within a playbook inside a **role**.

### Role

Playbook tasks can use **[Ansible roles](https://docs.ansible.com/ansible/latest/user_guide/playbooks_reuse_roles.html) **with modules, variables, files, and handlers to complete a complex task on a target machine within your inventory. Roles merge modules into custom packages for easier management, debugging, and reuse among multiple playbooks. Using a role means you only need to make changes in that package instead of every playbook using the module manually. This is especially helpful if you use roles from the Ansible Galaxy community.

For example, one Ansible role may include modules to install WordPress and [WP-CLI](https://www.inmotionhosting.com/support/edu/wordpress/wp-cli/). A second *plugins* role might install two [security plugins](https://www.inmotionhosting.com/support/edu/wordpress/plugins/recommended-security-plugins/) (e.g. [WP Cerber Security](https://www.inmotionhosting.com/support/edu/wordpress/wp-cerber-security-hardening-options/) and [Black Bad Queries](https://www.inmotionhosting.com/support/edu/wordpress/how-to-setup-bbq-block-bad-queries-on-wordpress/)). If you update WP Cerber settings in the *plugins* role, you don’t need to edit any playbooks using the role.

### Inventory

The **[Ansible inventory](https://docs.ansible.com/ansible/2.3/intro_inventory.html)** file lists all external hosts you’ll deploy to and their assigned groups. Hosts can be a fully qualified domain name (FQDN), [server hostname](https://www.inmotionhosting.com/support/edu/cpanel/find-server-name/), or public [server IP address](https://www.inmotionhosting.com/support/edu/cpanel/how-to-find-your-shared-ip-address-of-your-server-in-cpanel/). It also defines the default user to manage connections (e.g. [root](https://www.inmotionhosting.com/support/amp/obtain-root-access/) admin users). The Ansible inventory file can be defined in YAML or plaintext (INI format).

By default, each **Ansible playbook** uses [secure shell (SSH)](https://www.inmotionhosting.com/support/server/ssh/do-you-provide-ssh-access/) to connect with nodes in your **inventory**. There are other options available.

### Ansible and Hosting Environments

Ansible’s ability to automate via SSH makes it functional across any environment where you have root access, including VPS and Dedicated Servers. However, its power is fully realized in [cloud hosting](https://inmotioncloud.com/?utm_source=inmotionhosting&utm_medium=support_center&utm_campaign=internal&utm_content=what_is_ansible) and Infrastructure as a Service (IaaS) environments, where it can automate not just the software configuration, but also the lifecycle of the servers themselves (e.g., launching new VMs, attaching block storage).

## Container

An **Ansible container** is a quick installation with the required files to run Ansible on a control machine. It’s not the only way to install Ansible but a container for your web server OS allows you to quickly start managing deployments on any online server. We recommend using a [virtual private network (VPN) on public networks](https://blog.marketing.inmotionhosting.com/blog/6-ways-to-secure-your-web-activity-from-your-computer/#2).

## Galaxy

**Galaxy** is the **Ansible community** where users share roles they’ve created for others’ free use. You can use these roles in playbooks to enhance security, monitoring, database performance, and more. Get started with community-developed Ansible roles at [Galaxy.Ansible.com](https://galaxy.ansible.com/).

Follow our [Ansible Education Channel](https://www.inmotionhosting.com/support/edu/ansible/) to learn more about IT automation.
