--- - hosts: localhost gather_facts: true vars: svn_url: "svn://svn_server/path/to/repo_name" f_make: true tasks: - import_role: name: jar vars: task: svn - block: - debug: msg: "Up_to_date, unnecessary to continue." - meta: end_play when: repo_exists.stdout != '' and update_result.stdout == '' and not f_make - import_role: name: jar vars: task: mvn - hosts: "{{host}}" gather_facts: false vars: repo: "repo_name" remote_dir: "/path/to/deploy_dir" tasks: - import_role: name: jar vars: task: stop_service - name: clean {{repo}} logs shell: cd {{remote_dir}}/../logs/ && rm -rf {{repo}} - import_role: name: jar vars: task: update_jar - import_role: name: jar vars: task: start_service - name: wait for {{repo}} to start completely shell: while sleep 2; do grep -m 1 '(JVM running for [0-9\.]\+)$' {{remote_dir}}/../logs/{{repo}}/{{repo}}.log && break; done