Swiftorial Logo
Home
Swift Lessons
Matchups
CodeSnaps
Tutorials
Career
Resources

Creating Your First Playbook

Introduction

In this tutorial, we will guide you through the process of creating your first Ansible playbook. Ansible playbooks are files written in YAML that describe the desired state of your systems. They are simple, powerful, and can be used to manage configurations, deploy applications, and orchestrate complex IT tasks.

Prerequisites

Before you start, ensure you have the following:

  • Basic understanding of YAML syntax.
  • Ansible installed on your local machine.
  • One or more target machines (nodes) with SSH access configured.

Step 1: Setting Up Your Environment

First, ensure that Ansible is installed on your local machine. You can install Ansible using the following command:

sudo apt-get install ansible

Once installed, verify the installation by checking the Ansible version:

ansible --version

Step 2: Creating Your Inventory File

Create an inventory file that lists the target machines. This file can be named hosts and contains the IP addresses or hostnames of the nodes. Here’s an example:

[webservers]
192.168.1.1
192.168.1.2

Step 3: Writing Your First Playbook

Create a new file named site.yml and open it in your favorite text editor. This will be your first playbook. A basic playbook to install Nginx on your webservers looks like this:

- name: Install Nginx on webservers
  hosts: webservers
  become: yes

  tasks:
    - name: Ensure Nginx is installed
      apt:
        name: nginx
        state: present

Here’s a breakdown of what this playbook does:

  • name: A description of the play.
  • hosts: The group of target machines.
  • become: Ensures the tasks run with elevated privileges (sudo).
  • tasks: A list of tasks to be executed.
  • apt: The Ansible module to manage packages on Debian-based systems.

Step 4: Running Your Playbook

To execute your playbook, use the following command:

ansible-playbook -i hosts site.yml

This command tells Ansible to run the site.yml playbook using the inventory file hosts. The output will show the progress of each task:

PLAY [Install Nginx on webservers] **************************

TASK [Gathering Facts] *****************************************
ok: [192.168.1.1]
ok: [192.168.1.2]

TASK [Ensure Nginx is installed] *******************************
changed: [192.168.1.1]
changed: [192.168.1.2]

PLAY RECAP *****************************************************
192.168.1.1                : ok=2    changed=1    unreachable=0    failed=0
192.168.1.2                : ok=2    changed=1    unreachable=0    failed=0

Conclusion

Congratulations! You have successfully created and executed your first Ansible playbook. This is just the beginning. Ansible playbooks can be as simple or complex as needed, allowing you to automate a wide range of IT tasks. Continue exploring Ansible documentation and experiment with different modules to unlock its full potential.