Operations 22 min read

Master Ansible Automation: Complete Guide to Playbooks and Modules

This extensive tutorial walks you through Ansible fundamentals, installation, architecture, key modules, and advanced features such as playbooks, variables, templates, roles, handlers, tags, loops, and conditional execution, providing step‑by‑step examples that demonstrate how to automate configuration, deployment, and management across multiple Linux hosts.

MaGe Linux Operations
MaGe Linux Operations
MaGe Linux Operations
Master Ansible Automation: Complete Guide to Playbooks and Modules

Ansible Overview

Ansible is an agentless automation tool written in Python, using core libraries Paramiko, PyYAML, and Jinja2. It provides modularity, simple deployment, custom module support, powerful playbooks, and idempotent execution.

Architecture

Ansible operates from a control node that connects to managed hosts over SSH, executes modules locally on the control node, and pushes results back without requiring agents.

Key Features

Modular design

Agentless operation

Extensible with custom modules

Playbook‑driven automation

Idempotent execution

Installation and Configuration

Install Ansible via the system package manager. Configuration files reside in /etc/ansible/ansible.cfg, the inventory file in /etc/ansible/hosts, and plugins in /usr/share/ansible_plugins/.

Basic Command Usage

ansible <host-pattern> [options]

Common options include -m to specify a module and -a for module arguments.

Inventory Configuration

Define groups and hosts in the inventory file:

[webservers]
192.168.1.10
192.168.1.11

Modules

Frequently used modules include:

ping : checks host reachability.

command : runs a command on a remote host.

shell : runs a shell command with full shell features.

copy : copies files to remote hosts.

file : manages file attributes.

yum : manages packages on RPM‑based systems.

service : controls system services.

user : manages user accounts.

cron : manages scheduled tasks.

Playbooks

A playbook is a YAML file that defines the target hosts, remote user, variables, tasks, handlers, and optional roles. Core elements are hosts, remote_user, tasks, handlers, vars, templates, and roles.

Variables

Variables can be set in inventory files, on the command line with -e VAR=VALUE, inside playbooks, or in role defaults. Access them using Jinja2 syntax {{ var_name }}.

Templates

Templates are processed with the template module and use Jinja2 syntax to generate dynamic configuration files.

Handlers

Handlers are special tasks that run only when notified by other tasks, commonly used to restart services after a configuration change.

Tags

Tags allow selective execution of parts of a playbook using --tags or --skip-tags options.

Loops

Iterate over lists, strings, or dictionaries with with_items (or the newer loop) to repeat a task multiple times.

Conditionals

Use when statements to run tasks only when specific conditions are met, such as OS version checks.

Roles

Roles provide a standardized directory layout ( tasks, handlers, vars, templates, files, meta) for reusable automation components.

Practical Examples

The tutorial includes step‑by‑step examples that demonstrate:

Setting up password‑less SSH between hosts.

Installing and configuring Apache, Nginx, and MySQL on CentOS 6 and 7.

Using templates to adjust CPU counts or service ports.

Creating users and groups with loops.

Deploying Memcached with calculated memory limits.

Applying tags to run only specific tasks.

Conclusion

While Ansible’s YAML syntax demands precise indentation, mastering it enables powerful, repeatable automation for configuration management, application deployment, and system orchestration across many hosts.

Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

AutomationConfiguration ManagementDevOpsLinuxAnsiblePlaybooks
MaGe Linux Operations
Written by

MaGe Linux Operations

Founded in 2009, MaGe Education is a top Chinese high‑end IT training brand. Its graduates earn 12K+ RMB salaries, and the school has trained tens of thousands of students. It offers high‑pay courses in Linux cloud operations, Python full‑stack, automation, data analysis, AI, and Go high‑concurrency architecture. Thanks to quality courses and a solid reputation, it has talent partnerships with numerous internet firms.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.