09:14
This commit is contained in:
@@ -156,57 +156,6 @@
|
|||||||
nb_small: "{{ nb_kv.get('small', '') }}"
|
nb_small: "{{ nb_kv.get('small', '') }}"
|
||||||
nb_ok_line: "{{ nb_ok_line }}"
|
nb_ok_line: "{{ nb_ok_line }}"
|
||||||
|
|
||||||
|
|
||||||
# --- Extract upgrade_cmd using a localhost shell (consume stdout_lines, robust to garbling) ---
|
|
||||||
- name: "NB preflight | Capture upgrade_cmd from stdout (shell)"
|
|
||||||
when: nb_script.stat.exists
|
|
||||||
delegate_to: localhost
|
|
||||||
ansible.builtin.shell: |
|
|
||||||
set -e
|
|
||||||
# Feed nb_onedevice_update.py output (structured stdout_lines) to awk.
|
|
||||||
# 1) Prefer exact "NB: upgrade_cmd="
|
|
||||||
# 2) Fallback to any "NB: ...cmd=" (covers typos like upde_cmd)
|
|
||||||
# Print first match and exit; otherwise print empty line.
|
|
||||||
cat <<'EOF' | awk -F'=' '
|
|
||||||
BEGIN{found=0}
|
|
||||||
/^[[:space:]]*NB:[[:space:]]*upgrade_cmd[[:space:]]*=/ {
|
|
||||||
sub(/^[[:space:]]*NB:[[:space:]]*upgrade_cmd[[:space:]]*=/,""); print; found=1; exit
|
|
||||||
}
|
|
||||||
/^[[:space:]]*NB:.*cmd[[:space:]]*=/ {
|
|
||||||
sub(/^[[:space:]]*NB:[[:space:]]*/,"");
|
|
||||||
sub(/^[^=]+=[[:space:]]*/,""); print; found=1; exit
|
|
||||||
}
|
|
||||||
END{ if (!found) print "" }
|
|
||||||
'
|
|
||||||
EOF
|
|
||||||
args:
|
|
||||||
executable: /bin/bash
|
|
||||||
register: up_cmd_sh
|
|
||||||
changed_when: false
|
|
||||||
vars:
|
|
||||||
# Render the heredoc content as the structured lines; safer than raw joined stdout
|
|
||||||
EOF: "{{ (nb_preflight.stdout_lines | default([])) | join('\n') }}"
|
|
||||||
|
|
||||||
- name: "NB preflight | Normalize + debug upgrade_cmd"
|
|
||||||
when: nb_script.stat.exists
|
|
||||||
delegate_to: localhost
|
|
||||||
ansible.builtin.set_fact:
|
|
||||||
nb_upgrade_cmd_raw: "{{ (up_cmd_sh.stdout | default('')) | regex_replace('\r','') | trim }}"
|
|
||||||
nb_upgrade_cmd: >-
|
|
||||||
{{
|
|
||||||
'' if ( (up_cmd_sh.stdout | default('') | trim) | lower ) in ['none','null','']
|
|
||||||
else (up_cmd_sh.stdout | default('') | trim)
|
|
||||||
}}
|
|
||||||
nb_upgrade_cmd_len: "{{ ( (up_cmd_sh.stdout | default('') | trim) | length ) }}"
|
|
||||||
- name: "NB preflight | Debug upgrade_cmd"
|
|
||||||
when: nb_script.stat.exists
|
|
||||||
delegate_to: localhost
|
|
||||||
ansible.builtin.debug:
|
|
||||||
msg:
|
|
||||||
- "upgrade_cmd raw: '{{ nb_upgrade_cmd_raw }}'"
|
|
||||||
- "upgrade_cmd parsed: '{{ nb_upgrade_cmd }}' (len={{ nb_upgrade_cmd_len }})"
|
|
||||||
|
|
||||||
|
|
||||||
# --- Detect "cloud vs NetBox (before update) was different" (regex-free, robust)
|
# --- Detect "cloud vs NetBox (before update) was different" (regex-free, robust)
|
||||||
- name: "NB preflight | Detect whether IP changed (pre-update)"
|
- name: "NB preflight | Detect whether IP changed (pre-update)"
|
||||||
when: nb_script.stat.exists
|
when: nb_script.stat.exists
|
||||||
|
|||||||
Reference in New Issue
Block a user