I'm working on a playbook to deploy an internal application to internal 
hosts. This application is delivered by development to QA in a *.tar.gz 
file. The file is staged and deployed to QA (by me) in that *.tar.gz file. 
What I would like/am thinking of is something like:

$ ansible-playbook remote-group -k -e 
'{"qahost":"qaserver","version":2.75.26.1","path":"/home/app/app_2.75.26.1.tar.gz"}'

and the playbook would be something like:

---
- hosts: v2app
  gather_facts: yes

  vars:
    qahost: "{{ qahost }}"
    version: "{{ version }}"
    remotepath: "{{ path }}"
    localpath: "/tmp/{{version}}.tar.gz"

  tasks:
    - name: bring file locally
      command: scp "{{qahost}}":"{{remotepath}}" "{{localpath}}"
      local: true

    # localpath referes to /tmp, so using it twice means once on the local 
server and once on the remote app server
    - name: copy the deployment file from QA locally
      copy:src={{localpath}} dest={{localpath}}

    - name: extract the deployment file on the app server
      command: tar -xzf {{localpath}}

    # still testing, so using /tmp for all updates
    - name: make a copy of the application
      shell: rm -rf /tmp/app ; cp -r -p /opt/app /tmp

    - name: sync the new files to the application
      shell: cd /tmp/app; rsync -a {{localpath}} .

    - name: clean up
      command: rm -f {{localpath}}

(I'm just typing from memory and haven't syntax checked the above.)

How can I execute a single task of a playbook on the local server and the 
rest of the tasks on the remote servers? (Is this even possible?)

TIA

Mike

-- 
You received this message because you are subscribed to the Google Groups 
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/527d31ec-10a7-4617-8b9c-a300483c1c71%40googlegroups.com.

Reply via email to