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’