Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте How Ansible Works | Getting Started with Ansible
Introduction to Ansible

bookHow Ansible Works

Introduction: Types of Files in Ansible

When you use Ansible, you work with several key file types. Each file has a specific role, helping you organize and automate tasks efficiently. Understanding these files is essential for getting started:

  • Inventory files: List the servers (hosts) that you want to manage with Ansible;
  • Playbooks: Contain instructions, written in YAML, that describe what tasks to perform on your servers;
  • Configuration files: Store Ansible's settings and preferences, such as the main ansible.cfg file.

You will use these files together to automate tasks, manage infrastructure, and keep your work organized.

Host Inventory File

The host inventory file is a core part of how Ansible manages and organizes the systems you want to automate. This file tells Ansible which machines to connect to, using what names, and how to group them for different tasks.

What Is the Host Inventory File?

  • The host inventory file is a plain text file, often named hosts.ini;
  • It lists the IP addresses or hostnames of the computers ("hosts") that Ansible will manage;
  • Hosts can be grouped together, making it easy to run commands or playbooks on specific sets of machines;
  • You can specify connection details, such as SSH ports or usernames, directly in the inventory file.

Example: Simple hosts.ini File

Here is a beginner-friendly example of a hosts.ini file:

[webservers]
192.168.1.10
192.168.1.11

[databases]
dbserver1.example.com

Explanation:

  • [webservers] and [databases] are group names. You can use these names in your Ansible commands to target all machines in the group;
  • 192.168.1.10 and 192.168.1.11 are the IP addresses of two web servers;
  • dbserver1.example.com is the hostname of a database server.

Why Use Groups?

  • Groups allow you to organize your infrastructure by role or environment;
  • You can run tasks on all web servers or all database servers with a single command.
Note
Note

You can create as many groups as needed and even assign a host to more than one group for flexibility in your automation tasks.

What Is a Playbook?

Note
Definition

A playbook in Ansible is a file written in YAML format that describes a series of tasks you want to automate.

What Is a Playbook?

A playbook in Ansible is a file written in YAML format that describes a series of tasks you want to automate. Each playbook contains one or more "plays." Each play tells Ansible what to do on specific groups of computers, which are called hosts.

Playbooks are the main way you tell Ansible what actions to perform. You can use a playbook to:

  • Install software on your servers;
  • Copy files to remote machines;
  • Restart services or run commands;
  • Apply configuration changes to multiple systems at once.

A playbook is easy to read and write, even if you are new to automation. Here is a simple example:

---
- name: Install Nginx on web servers
  hosts: webservers
  tasks:
    - name: Install Nginx
      apt:
        name: nginx
        state: present

This playbook is a set of instructions for Ansible to follow. Let's break it down:

  • name: Install Nginx on web servers – This is just a label that describes what the playbook does.
  • hosts: webservers – This tells Ansible which group of computers (from your hosts.ini file) it should run the tasks on. In this case, all machines in the "webservers" group.
  • tasks: – Here you list the actions Ansible should perform.
    • - name: Install Nginx – A label for this specific task.
    • apt: – This is the module that tells Ansible to use the package manager on Ubuntu/Debian systems.
      • name: nginx – Specifies the package to install.
      • state: present – Ensures that Nginx is installed. If it's already installed, nothing will change.

In short, this playbook tells Ansible: "Go to all servers in the webservers group and make sure Nginx is installed." It's easy to read, even if you're new to automation.

question mark

What is the purpose of an inventory file in Ansible?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 1. Розділ 2

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Awesome!

Completion rate improved to 8.33

bookHow Ansible Works

Свайпніть щоб показати меню

Introduction: Types of Files in Ansible

When you use Ansible, you work with several key file types. Each file has a specific role, helping you organize and automate tasks efficiently. Understanding these files is essential for getting started:

  • Inventory files: List the servers (hosts) that you want to manage with Ansible;
  • Playbooks: Contain instructions, written in YAML, that describe what tasks to perform on your servers;
  • Configuration files: Store Ansible's settings and preferences, such as the main ansible.cfg file.

You will use these files together to automate tasks, manage infrastructure, and keep your work organized.

Host Inventory File

The host inventory file is a core part of how Ansible manages and organizes the systems you want to automate. This file tells Ansible which machines to connect to, using what names, and how to group them for different tasks.

What Is the Host Inventory File?

  • The host inventory file is a plain text file, often named hosts.ini;
  • It lists the IP addresses or hostnames of the computers ("hosts") that Ansible will manage;
  • Hosts can be grouped together, making it easy to run commands or playbooks on specific sets of machines;
  • You can specify connection details, such as SSH ports or usernames, directly in the inventory file.

Example: Simple hosts.ini File

Here is a beginner-friendly example of a hosts.ini file:

[webservers]
192.168.1.10
192.168.1.11

[databases]
dbserver1.example.com

Explanation:

  • [webservers] and [databases] are group names. You can use these names in your Ansible commands to target all machines in the group;
  • 192.168.1.10 and 192.168.1.11 are the IP addresses of two web servers;
  • dbserver1.example.com is the hostname of a database server.

Why Use Groups?

  • Groups allow you to organize your infrastructure by role or environment;
  • You can run tasks on all web servers or all database servers with a single command.
Note
Note

You can create as many groups as needed and even assign a host to more than one group for flexibility in your automation tasks.

What Is a Playbook?

Note
Definition

A playbook in Ansible is a file written in YAML format that describes a series of tasks you want to automate.

What Is a Playbook?

A playbook in Ansible is a file written in YAML format that describes a series of tasks you want to automate. Each playbook contains one or more "plays." Each play tells Ansible what to do on specific groups of computers, which are called hosts.

Playbooks are the main way you tell Ansible what actions to perform. You can use a playbook to:

  • Install software on your servers;
  • Copy files to remote machines;
  • Restart services or run commands;
  • Apply configuration changes to multiple systems at once.

A playbook is easy to read and write, even if you are new to automation. Here is a simple example:

---
- name: Install Nginx on web servers
  hosts: webservers
  tasks:
    - name: Install Nginx
      apt:
        name: nginx
        state: present

This playbook is a set of instructions for Ansible to follow. Let's break it down:

  • name: Install Nginx on web servers – This is just a label that describes what the playbook does.
  • hosts: webservers – This tells Ansible which group of computers (from your hosts.ini file) it should run the tasks on. In this case, all machines in the "webservers" group.
  • tasks: – Here you list the actions Ansible should perform.
    • - name: Install Nginx – A label for this specific task.
    • apt: – This is the module that tells Ansible to use the package manager on Ubuntu/Debian systems.
      • name: nginx – Specifies the package to install.
      • state: present – Ensures that Nginx is installed. If it's already installed, nothing will change.

In short, this playbook tells Ansible: "Go to all servers in the webservers group and make sure Nginx is installed." It's easy to read, even if you're new to automation.

question mark

What is the purpose of an inventory file in Ansible?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 1. Розділ 2
some-alt