From 0e01085ab6563507556caec9caa781671a29b14f Mon Sep 17 00:00:00 2001 From: Tim Gerla Date: Tue, 26 Mar 2013 13:34:16 -0700 Subject: [PATCH 1/2] Add some examples for local_action and rsync --- docsite/rst/playbooks2.rst | 14 ++++++++++++-- library/copy | 3 +++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/docsite/rst/playbooks2.rst b/docsite/rst/playbooks2.rst index ab2d1a015c6..294c8a2bc52 100644 --- a/docsite/rst/playbooks2.rst +++ b/docsite/rst/playbooks2.rst @@ -888,8 +888,9 @@ a good idea:: delegate_to: 127.0.0.1 -Here is the same playbook as above, but using the shorthand syntax, -'local_action', for delegating to 127.0.0.1:: +These commands will run on 127.0.0.1, which is the machine running Ansible. There is also a shorthand syntax that +you can use on a per-task basis: 'local_action'. Here is the same playbook as above, but using the shorthand +syntax for delegating to 127.0.0.1:: --- # ... @@ -902,6 +903,15 @@ Here is the same playbook as above, but using the shorthand syntax, - name: add back to load balancer pool local_action: command /usr/bin/add_back_to_pool $inventory_hostname +A common pattern is to use a local action to call 'rsync' to recursively copy files to the managed servers. +Here is an example:: + + --- + # ... + tasks: + - name: recursively copy files from management server to target + local_action: command rsync -a /path/to/files $inventory_hostname:/path/to/target/ + Fireball Mode ````````````` diff --git a/library/copy b/library/copy index b1b95bf2df7..cc5fb732410 100644 --- a/library/copy +++ b/library/copy @@ -75,6 +75,9 @@ examples: - code: "copy: src=/mine/ntp.conf dest=/etc/ntp.conf owner=root group=root mode=644 backup=yes" description: "Copy a new C(ntp.conf) file into place, backing up the original if it differs from the copied version" author: Michael DeHaan +notes: + - The "copy" module can't be used to recursively copy directory structures to the target machine. Please see the + "Delegation" section of the Advanced Playbooks documentation for a better approach to recursive copies. ''' def main(): From d3a7c729ab25dfbe47914f7a27b9aaf58ca74ce4 Mon Sep 17 00:00:00 2001 From: Tim Gerla Date: Tue, 26 Mar 2013 19:37:06 -0700 Subject: [PATCH 2/2] Add a note regarding rsync and ssh-agent/passphrase-less keys --- docsite/rst/playbooks2.rst | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docsite/rst/playbooks2.rst b/docsite/rst/playbooks2.rst index 294c8a2bc52..98f5cbd1abf 100644 --- a/docsite/rst/playbooks2.rst +++ b/docsite/rst/playbooks2.rst @@ -912,6 +912,9 @@ Here is an example:: - name: recursively copy files from management server to target local_action: command rsync -a /path/to/files $inventory_hostname:/path/to/target/ +Note that you must have passphrase-less SSH keys or an ssh-agent configured for this to work, otherwise rsync +will need to ask for a passphrase. + Fireball Mode `````````````