# Verify basic operation of the synchronize module. - name: integration/action/synchronize.yml hosts: test-targets any_errors_fatal: true vars: ansible_user: mitogen__has_sudo_pubkey ansible_become_pass: has_sudo_pubkey_password ansible_ssh_private_key_file: /tmp/synchronize-action-key # https://github.com/ansible/ansible/issues/56629 ansible_ssh_pass: '' ansible_password: '' tasks: # must copy git file to set proper file mode. - copy: dest: /tmp/synchronize-action-key src: ../../../data/docker/mitogen__has_sudo_pubkey.key mode: u=rw,go= delegate_to: localhost - file: path: /tmp/sync-test state: absent delegate_to: localhost - file: path: /tmp/sync-test state: directory delegate_to: localhost - copy: dest: /tmp/sync-test/item content: "item!" delegate_to: localhost # TODO: https://github.com/dw/mitogen/issues/692 # - file: # path: /tmp/sync-test.out # state: absent # become: true # exception: File "/tmp/venv/lib/python2.7/site-packages/ansible/plugins/action/__init__.py", line 129, in cleanup # exception: self._remove_tmp_path(self._connection._shell.tmpdir) # exception: AttributeError: 'get_with_context_result' object has no attribute '_shell' # TODO: looks like a bug on Ansible's end with 2.10? Maybe 2.10.1 will fix it # https://github.com/dw/mitogen/issues/746 - name: do synchronize test block: - synchronize: private_key: /tmp/synchronize-action-key dest: /tmp/sync-test.out src: /tmp/sync-test/ - slurp: src: /tmp/sync-test.out/item register: out - set_fact: outout="{{out.content|b64decode}}" - assert: that: outout == "item!" fail_msg: outout={{outout}} when: False # TODO: https://github.com/dw/mitogen/issues/692 # - file: # path: "{{item}}" # state: absent # become: true # with_items: # - /tmp/synchronize-action-key # - /tmp/sync-test # - /tmp/sync-test.out tags: - synchronize