Executing playbooks locally
Most of the time, during the course of this book, our playbooks will be running locally and interacting with a cloud provider. The cloud provider, usually, exposes an API over HTTPS. Generally, we need an inventory file, which has a record of all the hosts, for Ansible to run the playbooks. Let us try to work around it.
The easiest way of running a playbook locally is by using the keyword localhost
in the playbook as a value for the hosts
key. This will save us from creating and managing the inventory file altogether.
How to do it...
Consider the following playbook which we can execute without an inventory:
--- - hosts: localhost tasks: - name: get value debug: msg: "The value is: secret-value"
To execute this, we can just run the ansible-playbook
command with this playbook:
$ ansible-playbook playbook.yml [WARNING]: Host file not found: /etc/ansible/hosts [WARNING]: provided hosts list is empty, only localhost is available PLAY [localhost] *************************************************************** TASK [setup] ******************************************************************* ok: [localhost] TASK [include secret] ********************************************************** ok: [localhost] TASK [get value] *************************************************************** ok: [localhost] => { "msg": "The value is: secret-value" } PLAY RECAP ********************************************************************* localhost : ok=3 changed=0 unreachable=0 failed=0