Question:
I’m starting out with ansible and I’m looking for a way to create a boilerplate project on the server and on the local environment with ansible playbooks.
I want to use ansible templates locally to create some generic files.
But how would i take ansible to execute something locally?
I read something with local_action but i guess i did not get this right.
This is for the webbserver…but how do i take this and create some files locally?
1 2 3 4 5 |
- hosts: webservers remote_user: someuser - name: create some file template: src=~/workspace/ansible_templates/somefile_template.j2 dest=/etc/somefile/apps-available/someproject.ini |
Answer:
You can delegate tasks with the param delegate_to
to any host you like, for example:
1 2 3 4 |
- name: create some file template: src=~/workspace/ansible_templates/somefile_template.j2 dest=/etc/somefile/apps-available/someproject.ini delegate_to: localhost |
See Playbook Delegation in the docs.
If your playbook should in general run locally and no external hosts are involved though, you can simply create a group which contains localhost
and then run the playbook against this group. In your inventory:
1 2 3 |
[local] localhost ansible_connection=local |
and then in your playbook:
1 2 |
hosts: local |