- name: install rsync package: name: rsync when: ansible_distribution != "MacOSX" - name: Clean up the working directory and files file: path: '{{ output_dir }}' state: absent - name: Create the working directory file: path: '{{ output_dir }}' state: directory - name: create test new files copy: dest: '{{output_dir}}/{{item}}' mode: '0644' content: 'hello world' with_items: - foo.txt - bar.txt - name: Check facts debug: var: ansible_facts - name: Check '{{ output_dir }}' value debug: msg: "{{ output_dir }}" - name: test that the file was really copied over stat: path: "{{ output_dir }}/{{item}}" with_items: - foo.txt - bar.txt - name: copy file to new filename copy: src: "{{ output_dir }}/foo.txt" dest: "{{ output_dir }}/foo.result" #- name: synchronize file to new filename # synchronize: # src: "{{ output_dir }}/foo.txt" # dest: "{{ output_dir }}/foo.result" # register: sync_result # delegate_to: '{{ inventory_hostname }}' #- assert: # that: # - '''changed'' in sync_result' # - sync_result.changed == true # - '''cmd'' in sync_result' # - '''rsync'' in sync_result.cmd' # - '''msg'' in sync_result' # - sync_result.msg.startswith('>f+') # - 'sync_result.msg.endswith(''+ foo.txt # # '')' #- name: test that the file was really copied over # stat: # path: '{{ output_dir }}/foo.result' # register: stat_result #- assert: # that: # - stat_result.stat.exists == True # - stat_result.stat.checksum == '2aae6c35c94fcfb415dbe95f408b9ce91ee846ed' #- name: test that the file is not copied a second time # synchronize: # src='{{output_dir}}/foo.txt' # dest='{{output_dir}}/foo.result' # register: sync_result # delegate_to: '{{ inventory_hostname }}' #- assert: # that: # - sync_result.changed == False #- name: Cleanup # file: # state: absent # path: '{{output_dir}}/{{item}}' # with_items: # - foo.result # - bar.result # #- name: Synchronize using the mode=push param # synchronize: # src: '{{output_dir}}/foo.txt' # dest: '{{output_dir}}/foo.result' # mode: push # register: sync_result # delegate_to: '{{ inventory_hostname }}' #- assert: # that: # - '''changed'' in sync_result' # - sync_result.changed == true # - '''cmd'' in sync_result' # - '''rsync'' in sync_result.cmd' # - '''msg'' in sync_result' # - sync_result.msg.startswith('>f+') # - 'sync_result.msg.endswith(''+ foo.txt # # '')' #- name: test that the file was really copied over # stat: # path: '{{ output_dir }}/foo.result' # register: stat_result #- assert: # that: # - stat_result.stat.exists == True # - stat_result.stat.checksum == '2aae6c35c94fcfb415dbe95f408b9ce91ee846ed' # #- name: test that the file is not copied a second time # synchronize: # src: '{{output_dir}}/foo.txt' # dest: '{{output_dir}}/foo.result' # mode: push # register: sync_result # delegate_to: '{{ inventory_hostname }}' #- assert: # that: # - sync_result.changed == False #- name: Cleanup # file: # state: absent # path: '{{output_dir}}/{{item}}' # with_items: # - foo.result # - bar.result # #- name: Synchronize using the mode=pull param # synchronize: # src: '{{output_dir}}/foo.txt' # dest: '{{output_dir}}/foo.result' # mode: pull # register: sync_result # delegate_to: '{{ inventory_hostname }}' #- assert: # that: # - '''changed'' in sync_result' # - sync_result.changed == true # - '''cmd'' in sync_result' # - '''rsync'' in sync_result.cmd' # - '''msg'' in sync_result' # - sync_result.msg.startswith('>f+') # - 'sync_result.msg.endswith(''+ foo.txt # # '')' #- name: test that the file was really copied over # stat: # path: '{{ output_dir }}/foo.result' # register: stat_result #- assert: # that: # - stat_result.stat.exists == True # - stat_result.stat.checksum == '2aae6c35c94fcfb415dbe95f408b9ce91ee846ed' # #- name: test that the file is not copied a second time # synchronize: # src: '{{output_dir}}/foo.txt' # dest: '{{output_dir}}/foo.result' # mode: pull # register: sync_result # delegate_to: '{{ inventory_hostname }}' #- assert: # that: # - sync_result.changed == False #- name: Cleanup # file: # state: absent # path: '{{output_dir}}/{{item}}' # with_items: # - foo.result # - bar.result # #- name: synchronize files using with_items (issue#5965) # synchronize: # src: '{{output_dir}}/{{item}}' # dest: '{{output_dir}}/{{item}}.result' # with_items: # - foo.txt # - bar.txt # register: sync_result # delegate_to: '{{ inventory_hostname }}' #- assert: # that: # - sync_result.changed # - sync_result.msg == 'All items completed' # - '''results'' in sync_result' # - sync_result.results|length == 2 # - 'sync_result.results[0].msg.endswith(''+ foo.txt # # '')' # - 'sync_result.results[1].msg.endswith(''+ bar.txt # # '')' #- name: Cleanup # file: # state: absent # path: '{{output_dir}}/{{item}}.result' # with_items: # - foo.txt # - bar.txt # #- name: synchronize files using rsync_path (issue#7182) # synchronize: # src: '{{output_dir}}/foo.txt' # dest: '{{output_dir}}/foo.rsync_path' # rsync_path: 'sudo rsync' # register: sync_result # delegate_to: '{{ inventory_hostname }}' #- assert: # that: # - '''changed'' in sync_result' # - sync_result.changed == true # - '''cmd'' in sync_result' # - '''rsync'' in sync_result.cmd' # - '''rsync_path'' in sync_result.cmd' # - '''msg'' in sync_result' # - sync_result.msg.startswith('>f+') # - 'sync_result.msg.endswith(''+ foo.txt # # '')' #- name: Cleanup # file: # state: absent # path: '{{output_dir}}/{{item}}' # with_items: # - foo.rsync_path #- name: add subdirectories for link-dest test # file: # path: '{{output_dir}}/{{item}}/' # state: directory # mode: '0755' # with_items: # - directory_a # - directory_b #- name: copy foo.txt into the first directory # synchronize: # src: '{{output_dir}}/foo.txt' # dest: '{{output_dir}}/{{item}}/foo.txt' # with_items: # - directory_a # delegate_to: '{{ inventory_hostname }}' #- name: synchronize files using link_dest # synchronize: # src: '{{output_dir}}/directory_a/foo.txt' # dest: '{{output_dir}}/directory_b/foo.txt' # link_dest: # - '{{output_dir}}/directory_a' # register: sync_result # delegate_to: '{{ inventory_hostname }}' #- name: get stat information for directory_a # stat: # path: '{{ output_dir }}/directory_a/foo.txt' # register: stat_result_a #- name: get stat information for directory_b # stat: # path: '{{ output_dir }}/directory_b/foo.txt' # register: stat_result_b #- assert: # that: # - '''changed'' in sync_result' # - sync_result.changed == true # - stat_result_a.stat.inode == stat_result_b.stat.inode #- name: synchronize files using link_dest that would be recursive # synchronize: # src: '{{output_dir}}/foo.txt' # dest: '{{output_dir}}/foo.result' # link_dest: # - '{{output_dir}}' # register: sync_result # ignore_errors: true # delegate_to: '{{ inventory_hostname }}' # #- assert: # that: # - sync_result is not changed # - sync_result is failed #- name: Cleanup # file: # state: absent # path: '{{output_dir}}/{{item}}' # with_items: # - directory_b/foo.txt # - directory_a/foo.txt # - directory_a # - directory_b # #- name: setup - test for source with working dir with spaces in path # file: # state: directory # path: '{{output_dir}}/{{item}}' # delegate_to: '{{ inventory_hostname }}' # with_items: # - 'directory a' # - 'directory b' #- name: setup - create test new files # copy: # dest: '{{output_dir}}/directory a/{{item}}' # mode: '0644' # content: 'hello world' # with_items: # - foo.txt # delegate_to: '{{ inventory_hostname }}' #- name: copy source with spaces in dir path # synchronize: # src: '{{output_dir}}/directory a/foo.txt' # dest: '{{output_dir}}/directory b/' # delegate_to: '{{ inventory_hostname }}' # register: sync_result # ignore_errors: true #- name: get stat information for directory_b # stat: # path: '{{ output_dir }}/directory b/foo.txt' # register: stat_result_b #- assert: # that: # - '''changed'' in sync_result' # - sync_result.changed == true # - stat_result_b.stat.exists == True # - stat_result_b.stat.checksum == '2aae6c35c94fcfb415dbe95f408b9ce91ee846ed' #- name: Cleanup # file: # state: absent # path: '{{output_dir}}/{{item}}' # with_items: # - 'directory b/foo.txt' # - 'directory a/foo.txt' # - 'directory a' # - 'directory b' #