diff --git a/files/ansible-playbooks/ptsd-migrate.yml b/files/ansible-playbooks/ptsd-migrate.yml index 2df1cc7..d729c09 100644 --- a/files/ansible-playbooks/ptsd-migrate.yml +++ b/files/ansible-playbooks/ptsd-migrate.yml @@ -49,12 +49,13 @@ dev2_passfile_used_lldp6: "NONE" changed_when: false - - name: Read DEV1 hostname (busybox-safe) - - name: Init ptsd migrate report accumulator + - name: Report init migrate accumulator + delegate_to: localhost ansible.builtin.set_fact: ptsd_migrate_report: "" changed_when: false + - name: Read DEV1 hostname (busybox-safe) ansible.builtin.raw: > {{ pathprefix }} (cat /proc/sys/kernel/hostname 2>/dev/null || echo "") @@ -514,6 +515,12 @@ {%- endif -%} changed_when: false + - name: Report record connectivity mode + delegate_to: localhost + ansible.builtin.set_fact: + ptsd_migrate_report: "{{ (ptsd_migrate_report | default('')) ~ (', ' if (ptsd_migrate_report | default('')) != '' else '') ~ ('conn ' ~ dev2_conn_final) }}" + changed_when: false + - name: Abort if all DEV2 connection methods failed when: dev2_conn_final == "none" ansible.builtin.fail: @@ -537,11 +544,6 @@ - "lldp ipv4={{ lldp_dev2_ip | default('') }}" - "lldp ipv6={{ lldp_dev2_ip6 | default('') }}" - - name: Report milestone connectivity selected - ansible.builtin.set_fact: - ptsd_migrate_report: "{{ (ptsd_migrate_report ~ 'conn ' ~ dev2_conn_final ~ '; ') }}" - changed_when: false - - name: Build DEV2 exec wrapper (controller-side) for Phase 1 commands delegate_to: localhost ansible.builtin.set_fact: @@ -687,6 +689,13 @@ }} changed_when: false + - name: Report record eligibility + when: dev2_pre_migration_ok | bool + delegate_to: localhost + ansible.builtin.set_fact: + ptsd_migrate_report: "{{ (ptsd_migrate_report | default('')) ~ (', ' if (ptsd_migrate_report | default('')) != '' else '') ~ ('eligible PPP') }}" + changed_when: false + - name: "PHASE 0 (LAST) | Stop if DEV2 is NOT a pure old PPP device" when: not (dev2_pre_migration_ok | bool) delegate_to: localhost @@ -752,6 +761,12 @@ args: { executable: /bin/bash } changed_when: true + - name: Report record backup + delegate_to: localhost + ansible.builtin.set_fact: + ptsd_migrate_report: "{{ (ptsd_migrate_report | default('')) ~ (', ' if (ptsd_migrate_report | default('')) != '' else '') ~ ('backup config-orig') }}" + changed_when: false + - name: PHASE 1 | DEV2 set /tmp/ptsd.inprogress marker before controller config copy delegate_to: localhost ansible.builtin.shell: | @@ -761,9 +776,10 @@ changed_when: true - - name: Report milestone marker set + - name: Report record inprogress marker + delegate_to: localhost ansible.builtin.set_fact: - ptsd_migrate_report: "{{ (ptsd_migrate_report ~ 'marker set; ') }}" + ptsd_migrate_report: "{{ (ptsd_migrate_report | default('')) ~ (', ' if (ptsd_migrate_report | default('')) != '' else '') ~ ('mark inprogress') }}" changed_when: false - name: PHASE 1 | Download /tmp/config.json from DEV2 to controller (tunnel) @@ -922,6 +938,13 @@ changed_when: true failed_when: scp_up_tunnel.rc != 0 + - name: Report record DHCP upload + when: dev2_conn_final == "tunnel" + delegate_to: localhost + ansible.builtin.set_fact: + ptsd_migrate_report: "{{ (ptsd_migrate_report | default('')) ~ (', ' if (ptsd_migrate_report | default('')) != '' else '') ~ ('upload DHCP config') }}" + changed_when: false + - name: PHASE 1 | Upload config-dhcp.json to DEV2 (direct LLDP IPv4) when: dev2_conn_final == "direct_lldp" delegate_to: localhost @@ -937,6 +960,13 @@ changed_when: true failed_when: scp_up_direct.rc != 0 + - name: Report record DHCP upload + when: dev2_conn_final == "direct_lldp" + delegate_to: localhost + ansible.builtin.set_fact: + ptsd_migrate_report: "{{ (ptsd_migrate_report | default('')) ~ (', ' if (ptsd_migrate_report | default('')) != '' else '') ~ ('upload DHCP config') }}" + changed_when: false + - name: PHASE 1 | Upload config-dhcp.json to DEV2 (LLDP IPv4 fallback) when: dev2_conn_final == "lldp4_fallback" delegate_to: localhost @@ -952,6 +982,13 @@ changed_when: true failed_when: scp_up_lldp4.rc != 0 + - name: Report record DHCP upload + when: dev2_conn_final == "lldp4" + delegate_to: localhost + ansible.builtin.set_fact: + ptsd_migrate_report: "{{ (ptsd_migrate_report | default('')) ~ (', ' if (ptsd_migrate_report | default('')) != '' else '') ~ ('upload DHCP config') }}" + changed_when: false + - name: PHASE 1 | Upload config-dhcp.json to DEV2 (LLDP IPv6 via DEV1 nested; last resort) when: dev2_conn_final == "lldp6_via_dev1" delegate_to: localhost @@ -980,6 +1017,13 @@ changed_when: true failed_when: scp_up_lldp6.rc != 0 + - name: Report record DHCP upload + when: dev2_conn_final == "lldp6_via_dev1" + delegate_to: localhost + ansible.builtin.set_fact: + ptsd_migrate_report: "{{ (ptsd_migrate_report | default('')) ~ (', ' if (ptsd_migrate_report | default('')) != '' else '') ~ ('upload DHCP config') }}" + changed_when: false + - name: PHASE 1 | DEV2 md5sum of uploaded config-dhcp.json via wrapper delegate_to: localhost ansible.builtin.shell: | @@ -1035,11 +1079,6 @@ args: { executable: /bin/bash } changed_when: true - - name: Report milestone config converted and staged - ansible.builtin.set_fact: - ptsd_migrate_report: "{{ (ptsd_migrate_report ~ 'config backed up, converted, uploaded; ') }}" - changed_when: false - - name: PHASE 1 | DEV2 arm parachute reboot delayed 600 seconds delegate_to: localhost ansible.builtin.shell: | @@ -1048,9 +1087,10 @@ args: { executable: /bin/bash } changed_when: true - - name: Report milestone parachute armed + - name: Report record parachute arm + delegate_to: localhost ansible.builtin.set_fact: - ptsd_migrate_report: "{{ (ptsd_migrate_report ~ 'parachute reboot armed; ') }}" + ptsd_migrate_report: "{{ (ptsd_migrate_report | default('')) ~ (', ' if (ptsd_migrate_report | default('')) != '' else '') ~ ('arm parachute') }}" changed_when: false - name: PHASE 1 | DEV2 simulate upgrade marker /tmp/AA_startedupgrade @@ -1070,11 +1110,6 @@ args: { executable: /bin/bash } changed_when: true - - name: Report milestone lld restart scheduled - ansible.builtin.set_fact: - ptsd_migrate_report: "{{ (ptsd_migrate_report ~ 'lld restart scheduled; ') }}" - changed_when: false - - name: PHASE 1 | initiating actual upgrade delegate_to: localhost ansible.builtin.shell: | @@ -1083,9 +1118,10 @@ args: { executable: /bin/bash } changed_when: true - - name: Report milestone upgrade started + - name: Report record activation + delegate_to: localhost ansible.builtin.set_fact: - ptsd_migrate_report: "{{ (ptsd_migrate_report ~ 'upgrade started; ') }}" + ptsd_migrate_report: "{{ (ptsd_migrate_report | default('')) ~ (', ' if (ptsd_migrate_report | default('')) != '' else '') ~ ('activate config-test') }}" changed_when: false post_tasks: @@ -1132,20 +1168,11 @@ and ('Cannot assign requested address' not in (del_ip.stdout | default(''))) and ('Cannot assign requested address' not in (del_ip.stderr | default(''))) - - name: Report milestone cleanup completed - when: dev2_conn_method | default('') == "tunnel" - ansible.builtin.set_fact: - ptsd_migrate_report: "{{ (ptsd_migrate_report ~ 'cleanup done; ') }}" - changed_when: false - -- name: PHASE Y | Final cumulative migrate report - hosts: all - gather_facts: false - tasks: - - name: Migrate final cumulative report + - name: Report record cleanup completion + when: dev2_conn_final == "tunnel" delegate_to: localhost - ansible.builtin.debug: - msg: "{{ ptsd_migrate_report | default('') | regex_replace('\\s+', ' ') | trim }}" + ansible.builtin.set_fact: + ptsd_migrate_report: "{{ (ptsd_migrate_report | default('')) ~ (', ' if (ptsd_migrate_report | default('')) != '' else '') ~ ('cleanup done') }}" changed_when: false - name: PHASE X | Wait 45 seconds after config activation @@ -1155,5 +1182,16 @@ - ansible.builtin.pause: seconds: 45 -- import_playbook: ptsd_reacquire_attempt.yml + - name: Report record post activation wait + delegate_to: localhost + ansible.builtin.set_fact: + ptsd_migrate_report: "{{ (ptsd_migrate_report | default('')) ~ (', ' if (ptsd_migrate_report | default('')) != '' else '') ~ ('wait 45s') }}" + changed_when: false + - name: Final migrate cumulative report + delegate_to: localhost + ansible.builtin.debug: + msg: "{{ ptsd_migrate_report | default('') }}" + changed_when: false + +- import_playbook: ptsd_reacquire_attempt.yml \ No newline at end of file