Ansible: Localhost – Run Playbook Locally – Local Command

It may be useful to run an Ansible playbook on a local system.

For example for putting a playbook in a crontab or for a new host provisioning.

In this note i am showing the several ways to run Ansible playbook locally.

Cool Tip: Enable DEBUG mode and increase VERBOSITY in Ansible! Read more →

Run Ansible Playbook Locally

Run an Ansible playbook on the localhost:

# playbook.yml:
---
- name: "Ansible playbook example"
  hosts: 127.0.0.1
  connection: local
  tasks:

    - name: "Check out a Git repository on the Ansible host"
      git:
        repo: git://github.com/path/to/repo.git
        dest: /local/path

Run only a single task locally:

# playbook.yml:
---
- name: "Ansible playbook example"
  hosts: webservers
  tasks:

    - ...

    - name: "Check out a Git repository on the Ansible host"
      local_action: 
        module: git
        repo: git://github.com/path/to/repo.git
        dest: /local/path

Run an Ansible playbook locally from the command line:

$ ansible-playbook --connection=local 127.0.0.1, playbook.yml

Note, that the comma after 127.0.0.1, is mandatory, otherwise 127.0.0.1 is treated like a file name, that will cause the following errors:

[WARNING]: Unable to parse …/127.0.0.1 as an inventory source
[WARNING]: No inventory was parsed, only implicit localhost is available
[WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match ‘all’

Recommended Book
ansible

Ansible is a simple, but powerful, server and configuration management tool (with a few other tricks up its sleeve).

This book will help those familiar with the command line and basic shell scripting start using Ansible to provision and manage anywhere from one to thousands of servers.