- name: playbook debug: msg: clone_disks.yml - name: Block clone block: - name : read src_link shell: echo "1001" register: src_link delegate_to: localhost - name : read dst_link shell: echo "2001" register: dst_link delegate_to: localhost - shell: cio_ignore -a {{ src_link.stdout }} - shell: cio_ignore -a {{ dst_link.stdout }} - name: Link {{ master }} disk as {{ src_link.stdout }} disk shell: vmcp link {{ master }} 100 {{ src_link.stdout }} rr register: result until: result.rc == 0 delay: 2 retries: 5 - name: find dasd name {{ src_link.stdout }} shell: lsdasd |grep {{ src_link.stdout }} |awk '{print $3}' register: dasd_1000 - name: Link {{ lguest.stdout }} rootvg disk as {{ dst_link.stdout }} disk shell: vmcp link {{ lguest.stdout }} 100 {{ dst_link.stdout }} mr register: result until: result.rc == 0 delay: 2 retries: 5 - name: debug info shell: vmcp q link {{ dst_link.stdout }} when: result.rc != 0 register: debuglink - debug: msg: "{{ debuglink.stdout }}" when: debuglink|changed - include: checkdiskadmin.yml - name: find dasd name {{ dst_link.stdout }} shell: lsdasd |grep {{ dst_link.stdout }} |awk '{print $3}' register: dasd_2000 - name: flash copy disk shell: vmcp flashcopy {{ src_link.stdout }} 0 end to {{ dst_link.stdout }} 0 end #shell: vmcp flashcopy {{ src_link.stdout }} 0 end to {{ dst_link.stdout }} 0 end SYNC register: flashresult until: flashresult.rc == 0 delay: 60 retries: 10 ignore_errors: true - shell: cio_ignore -r {{ src_link.stdout }} when: flashresult|failed - shell: cio_ignore -r {{ dst_link.stdout }} when: flashresult|failed - name: chccwdev -e {{ src_link.stdout }} shell: chccwdev -e {{ src_link.stdout }} register: online1 until: online1.rc == 0 delay: 5 retries: 5 when: flashresult|failed - name: chccwdev -e {{ dst_link.stdout }} shell: chccwdev -e {{ dst_link.stdout }} register: online2 until: online2.rc == 0 delay: 5 retries: 5 when: flashresult|failed - name: Try dd image shell: dd if=/dev/{{ dasd_1000.stdout }} of=/dev/{{ dasd_2000.stdout }} bs=4M register: dd_output when: flashresult|failed - debug: msg: "{{ dd_output.stdout }}" when: dd_output|changed - name : Detach {{ src_link.stdout }} disk shell: vmcp det {{ src_link.stdout }} register: result until: result.rc == 0 delay: 2 retries: 5 - name: dettach {{ dst_link.stdout }} dasd shell: vmcp det {{ dst_link.stdout }} register: result until: result.rc == 0 delay: 2 retries: 5 - name: chccwdev -d {{ src_link.stdout }} shell: chccwdev -d {{ src_link.stdout }} register: offline1 until: offline1.rc == 0 delay: 5 retries: 5 when: flashresult|failed - name: chccwdev -d {{ dst_link.stdout }} shell: chccwdev -d {{ dst_link.stdout }} register: offline2 until: offline2.rc == 0 delay: 5 retries: 5 when: flashresult|failed rescue: - name: det current link {{ src_link.stdout }} shell: vmcp det {{ src_link.stdout }} ignore_errors: true - name: det current link {{ dst_link.stdout }} shell: vmcp det {{ dst_link.stdout }} ignore_errors: true - name: return src link error command: /usr/bin/false when: - result.rc != 0