This commit is contained in:
2026-01-19 15:53:23 +02:00
parent 6688a45028
commit 36aca2d6b3

View File

@@ -162,7 +162,7 @@
{{
dict(
nb_tokens
| select('match', '^[a-zA-Z_]+=')
| select('match', '^[a-zA-Z_]+=')
| map('split', '=', 1)
| map('list')
)
@@ -281,6 +281,14 @@
- "Device: {{ inventory_hostname }}"
- "Mode: report-only (soft-fail telemetry)"
# ----------------------- Scan status tracking (journal finalization) -----------------------
- name: Init scan status tracking
delegate_to: localhost
set_fact:
scan_ok: []
scan_fail: []
changed_when: false
# ----------------------- Temp IP on DEV1 -----------------------
- name: Add temporary IP on DEV1
raw: "{{ pathprefix }} ip a add {{ dev2_side_ip }} dev {{ dev1_iface }}"
@@ -432,6 +440,14 @@
set_fact:
dev1_fw_clean: "{{ dev1_fw_clean_cmd.stdout|trim }}"
# ----------------------- Scan tracking: Dev1 fw_version -----------------------
- name: Scan tracking | Dev1 fw_version outcome
delegate_to: localhost
set_fact:
scan_ok: "{{ scan_ok + (['fw_version'] if ((dev1_fw_clean | default('') | length) > 0) else []) }}"
scan_fail: "{{ scan_fail + (['fw_version=unavailable'] if ((dev1_fw_clean | default('') | length) == 0) else []) }}"
changed_when: false
- name: Publish Dev1 fw_version
delegate_to: localhost
uri:
@@ -488,6 +504,13 @@
set_fact:
multissidfix_value: "{{ (ssid_profiles_summary_raw.stdout | default('0 (0e 0d)')) | trim }}"
# ----------------------- Scan tracking: Dev1 multissidfix -----------------------
- name: Scan tracking | Dev1 multissidfix outcome
delegate_to: localhost
set_fact:
scan_ok: "{{ scan_ok + ['multissidfix'] }}"
changed_when: false
- name: Dev1 | multissidfix debug
delegate_to: localhost
when: multissidfix_value is defined
@@ -642,6 +665,13 @@
{{ scroll24_ver_clean | default('v1') }}_{{ scroll24_schedule }}
{%- endif -%}
# ----------------------- Scan tracking: Dev1 scroll24 -----------------------
- name: Scan tracking | Dev1 scroll24 outcome
delegate_to: localhost
set_fact:
scan_ok: "{{ scan_ok + ['scroll24'] }}"
changed_when: false
- name: Dev1 | scroll24 debug
delegate_to: localhost
debug:
@@ -674,7 +704,7 @@
} | to_json }}"
payload_encoding: "string"
changed_when: false
# ----------------------- Dev1 wifidebug.sh check & publish -----------------------
- name: Dev1 | Check wifidebug.sh presence
@@ -718,6 +748,13 @@
{%- elif (wd_version_clean | default('') | length) > 0 -%}v{{ wd_version_clean }}
{%- else -%}n/a{%- endif -%}
# ----------------------- Scan tracking: Dev1 wifidebug -----------------------
- name: Scan tracking | Dev1 wifidebug outcome
delegate_to: localhost
set_fact:
scan_ok: "{{ scan_ok + ['wifidebug'] }}"
changed_when: false
- name: Publish Dev1 wifidebug custom field
delegate_to: localhost
uri:
@@ -768,6 +805,14 @@
else (dev1_bootenv_wc.stdout | default('') | trim)
}}
# ----------------------- Scan tracking: Dev1 cpe_bootenv -----------------------
- name: Scan tracking | Dev1 cpe_bootenv outcome
delegate_to: localhost
set_fact:
scan_ok: "{{ scan_ok + (['cpe_bootenv'] if ((cpe_bootenv_value | default('unavailable')) != 'unavailable') else []) }}"
scan_fail: "{{ scan_fail + (['cpe_bootenv=unavailable'] if ((cpe_bootenv_value | default('unavailable')) == 'unavailable') else []) }}"
changed_when: false
- name: Publish Dev1 cpe_bootenv custom field
delegate_to: localhost
uri:
@@ -1216,6 +1261,14 @@
- "dev2_firmux_text='{{ dev2_firmux_text | default('') | regex_replace('\n','\\n') }}'"
- "indoor_fw_norm='{{ indoor_fw_norm | default('') }}'"
# ----------------------- Scan tracking: Dev2 indoor_fwver -----------------------
- name: Scan tracking | Dev2 indoor_fwver outcome
delegate_to: localhost
set_fact:
scan_ok: "{{ scan_ok + (['indoor_fwver'] if ((indoor_fw_norm | default('') | length) > 0) else []) }}"
scan_fail: "{{ scan_fail + (['indoor_fwver=unavailable'] if ((indoor_fw_norm | default('') | length) == 0) else []) }}"
changed_when: false
- name: Publish Dev2 indoor_fwver
delegate_to: localhost
uri:
@@ -1350,6 +1403,14 @@
else (indoor_bootenv_raw | default('') | trim)
}}
# ----------------------- Scan tracking: Dev2 indoor_bootenv -----------------------
- name: Scan tracking | Dev2 indoor_bootenv outcome
delegate_to: localhost
set_fact:
scan_ok: "{{ scan_ok + (['indoor_bootenv'] if ((indoor_bootenv_value | default('unavailable')) != 'unavailable') else []) }}"
scan_fail: "{{ scan_fail + (['indoor_bootenv=unavailable'] if ((indoor_bootenv_value | default('unavailable')) == 'unavailable') else []) }}"
changed_when: false
- name: Publish Dev2 indoor_bootenv custom field
delegate_to: localhost
uri:
@@ -1490,6 +1551,14 @@
)
}}
# ----------------------- Scan tracking: Dev2 indoor_hostname -----------------------
- name: Scan tracking | Dev2 indoor_hostname outcome
delegate_to: localhost
set_fact:
scan_ok: "{{ scan_ok + (['indoor_hostname'] if ((indoor_hostname_value | default('unavailable')) != 'unavailable') else []) }}"
scan_fail: "{{ scan_fail + (['indoor_hostname=unavailable'] if ((indoor_hostname_value | default('unavailable')) == 'unavailable') else []) }}"
changed_when: false
- name: Dev2 | indoor_hostname debug
delegate_to: localhost
debug:
@@ -1521,6 +1590,41 @@
payload_encoding: "string"
changed_when: false
# ----------------------- Final journal: scan status -----------------------
- name: Journal final scan status (success / partial / fail)
delegate_to: localhost
vars:
_ok_n: "{{ (scan_ok | default([])) | length }}"
_fail_n: "{{ (scan_fail | default([])) | length }}"
_reason: "{{ (scan_fail | default([])) | join('; ') }}"
_msg: >-
{%- if (_fail_n | int) == 0 -%}
scan was successful
{%- elif (_ok_n | int) == 0 -%}
scanning failed — {{ _reason }}
{%- else -%}
scan was completed partially — {{ _reason }}
{%- endif -%}
uri:
url: "http://{{ rmq_host }}:{{ rmq_port }}/api/exchanges/{{ rmq_vhost | urlencode }}/{{ rmq_exchange | urlencode }}/publish"
method: POST
user: "{{ rmq_user }}"
password: "{{ rmq_pass }}"
force_basic_auth: true
status_code: 200
headers: { content-type: "application/json" }
body_format: json
body:
properties: { content_type: "application/json" }
routing_key: "{{ control_queue }}"
payload: "{{ {
'inscope_device': (ansible_hostname | default(inventory_hostname)),
'task_name': 'journal_add',
'task_result': _msg
} | to_json }}"
payload_encoding: "string"
changed_when: false
post_tasks:
- name: "✅ Cleanup start"
debug: