How to create and run/execute Ansible Playbooks

  • 1

In our previous posts, we introduced Ansible fundamentals, and Ansible installation and configuration.Now let’s learn to create an Ansible playbook step by step.

You create Ansible playbooks to handle or automates more complex management tasks. Playbooks consist of one or more plays, or groups of tasks, that operate on a set of defined hosts. Playbooks are expressed in YAML format.

Ansible hosts that are referenced in the playbook must be defined in the Ansible inventory file, which by default resides at /etc/ansible/hosts. Each play must specify the hosts on which the tasks operate, the list of tasks to execute on each host, and any required variables or module parameters. For detailed information about creating Ansible playbooks, refer to the Ansible website at

Creating a Playbook

To create a simple playbook to perform tasks on defined hosts/machine please follow below steps.
Step 1 – Create a new file with a descriptive playbook name that uses the .yml file extension

ansible@devops$ vi sample.yml

Step 2 – Define play section with required opening line for the playbook and the hosts or groups of hosts which defined into inventory files.

---                        # yml opening line
- hosts: webservers        # hosts or groups which defined into inventory file
  remote_user: yourname    # The remote_user parameter was formerly called just user
  become: yes              # Ansible allows you to ‘become’ another user with sudo privilege

To understand become please visit  Become (Privilege Escalation)

Step 3 – Define a tasks section, and include one or more tasks with each task as a list item.

# Task section with list of tasks 
  - name: ensure apache is at the latest version
      name: httpd
      state: latest
  - name: write the apache config file
      src: /srv/httpd.j2
      dest: /etc/httpd.conf
    - restart apache
  - name: ensure apache is running
      name: httpd
      state: started

Executing the Playbook

To execute the playbook, execute the ansible-playbook command on the control machine, and provide the playbook path and any desired options.

ansible@devops$ ansible-playbook playbook.yml

 For more options run ansible-playbook --help


Avinash Pawar

An automation enthusiast who presently working as DevOps Engineer.

More Posts - Website

Follow Me:
TwitterFacebookLinkedInGoogle Plus

Avinash Pawar

An automation enthusiast who presently working as DevOps Engineer.