1615
This commit is contained in:
@@ -2637,91 +2637,128 @@
|
||||
non_ts_diff_found: true
|
||||
changed_when: false
|
||||
|
||||
- name: Indoor | Normalize Dev2 passfile facts (avoid undefined)
|
||||
delegate_to: localhost
|
||||
set_fact:
|
||||
dev2_passfile_used_lldp: "{{ dev2_passfile_used_lldp | default('NONE') }}"
|
||||
dev2_passfile_used_lldp6: "{{ dev2_passfile_used_lldp6 | default('NONE') }}"
|
||||
changed_when: false
|
||||
|
||||
# ----------------------- Dev2 payredirect config flag -> payredirect -----------------------
|
||||
- name: Dev2 | Read payredirect enabled flag
|
||||
- name: Dev2 | Read payredirect (tunnel)
|
||||
when:
|
||||
- (dev2_passfile_used | default('NONE')) != 'NONE'
|
||||
or ((dev2_passfile_used_lldp | default('NONE')) != 'NONE')
|
||||
or ((dev2_passfile_used_lldp6 | default('NONE')) != 'NONE')
|
||||
- tunnel_ok | default(false)
|
||||
- dev2_passfile_used != 'NONE'
|
||||
delegate_to: localhost
|
||||
shell: |
|
||||
set -o pipefail
|
||||
|
||||
# Try every DEV2 shell path that is available.
|
||||
# Stop only after a path actually returns true/false.
|
||||
if [ "{{ dev2_passfile_used | default('NONE') }}" != "NONE" ]; then
|
||||
PORT="{{ _local_port }}"
|
||||
OUT="$(sshpass -f "{{ dev2_passfile_used }}" ssh {{ ssh_opts_common }} \
|
||||
-o ConnectTimeout={{ ssh_timeout }} \
|
||||
-p "$PORT" "{{ dev2_ssh_user }}@127.0.0.1" \
|
||||
"cat /tmp/config.json 2>/dev/null | grep -i block -A2 | grep enab | head -n1" 2>/dev/null || true)"
|
||||
case "$(printf '%s' "$OUT" | tr '[:upper:]' '[:lower:]')" in
|
||||
*true*) echo true; exit 0 ;;
|
||||
*false*) echo false; exit 0 ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
if [ "{{ dev2_passfile_used_lldp | default('NONE') }}" != "NONE" ] && [ -n "{{ lldp_dev2_ip | default('') }}" ]; then
|
||||
OUT="$(sshpass -f "{{ dev2_passfile_used_lldp }}" ssh \
|
||||
-o StrictHostKeyChecking=no -o PubkeyAuthentication=no \
|
||||
-o ConnectTimeout=15 \
|
||||
"{{ dev2_ssh_user }}@{{ lldp_dev2_ip }}" \
|
||||
"cat /tmp/config.json 2>/dev/null | grep -i block -A2 | grep enab | head -n1" 2>/dev/null || true)"
|
||||
case "$(printf '%s' "$OUT" | tr '[:upper:]' '[:lower:]')" in
|
||||
*true*) echo true; exit 0 ;;
|
||||
*false*) echo false; exit 0 ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
if [ "{{ dev2_passfile_used_lldp6 | default('NONE') }}" != "NONE" ] && [ -n "{{ lldp_dev2_ip6 | default('') }}" ]; then
|
||||
IP6="{{ lldp_dev2_ip6 }}"
|
||||
F="{{ dev2_passfile_used_lldp6 }}"
|
||||
OUT="$(sshpass -p '{{ dev1_pass }}' ssh {{ ssh_opts_common }} \
|
||||
"{{ dev1_user }}@{{ ansible_host|default(inventory_hostname) }}" \
|
||||
"sshpass -f '/tmp/${F}' ssh \
|
||||
-o StrictHostKeyChecking=no -o PubkeyAuthentication=no \
|
||||
-o ConnectTimeout={{ ssh_timeout }} \
|
||||
'{{ dev2_ssh_user }}@\[${IP6}%{{ dev1_iface }}\]' \
|
||||
\"cat /tmp/config.json 2>/dev/null | grep -i block -A2 | grep enab | head -n1\"" 2>/dev/null || true)"
|
||||
case "$(printf '%s' "$OUT" | tr '[:upper:]' '[:lower:]')" in
|
||||
*true*) echo true; exit 0 ;;
|
||||
*false*) echo false; exit 0 ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
exit 0
|
||||
PORT="{{ _local_port }}"
|
||||
sshpass -f "{{ dev2_passfile_used }}" ssh {{ ssh_opts_common }} \
|
||||
-o ConnectTimeout={{ ssh_timeout }} \
|
||||
-p "$PORT" "{{ dev2_ssh_user }}@127.0.0.1" \
|
||||
"cat /tmp/config.json 2>/dev/null | grep -i block -A2 | grep enab | head -n1"
|
||||
args:
|
||||
executable: /bin/bash
|
||||
register: dev2_payredirect_raw
|
||||
register: dev2_payredirect_tunnel
|
||||
changed_when: false
|
||||
failed_when: false
|
||||
ignore_errors: true
|
||||
|
||||
- name: Dev2 | Read payredirect (LLDP IPv4)
|
||||
when:
|
||||
- tunnel_ok | default(false)
|
||||
- dev2_passfile_used == 'NONE'
|
||||
- (lldp_dev2_ip | default('') | length) > 0
|
||||
- dev2_passfile_used_lldp is defined
|
||||
- dev2_passfile_used_lldp != 'NONE'
|
||||
delegate_to: localhost
|
||||
shell: |
|
||||
sshpass -f "{{ dev2_passfile_used_lldp }}" ssh \
|
||||
-o StrictHostKeyChecking=no -o PubkeyAuthentication=no \
|
||||
-o ConnectTimeout=15 \
|
||||
"{{ dev2_ssh_user }}@{{ lldp_dev2_ip }}" \
|
||||
"cat /tmp/config.json 2>/dev/null | grep -i block -A2 | grep enab | head -n1"
|
||||
args:
|
||||
executable: /bin/bash
|
||||
register: dev2_payredirect_lldp
|
||||
changed_when: false
|
||||
failed_when: false
|
||||
ignore_errors: true
|
||||
|
||||
- name: Dev2 | Read payredirect (LLDP IPv6 via Dev1)
|
||||
when:
|
||||
- tunnel_ok | default(false)
|
||||
- dev2_passfile_used == 'NONE'
|
||||
- (dev2_passfile_used_lldp is not defined or dev2_passfile_used_lldp == 'NONE')
|
||||
- lldp_dev2_ip6 is defined
|
||||
- lldp_dev2_ip6 | length > 0
|
||||
- dev2_passfile_used_lldp6 is defined
|
||||
- dev2_passfile_used_lldp6 != 'NONE'
|
||||
delegate_to: localhost
|
||||
shell: |
|
||||
IP6="{{ lldp_dev2_ip6 }}"
|
||||
F="{{ dev2_passfile_used_lldp6 }}"
|
||||
if [ -z "$IP6" ] || [ -z "$F" ] || [ "$F" = "NONE" ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
sshpass -p '{{ dev1_pass }}' ssh {{ ssh_opts_common }} \
|
||||
"{{ dev1_user }}@{{ ansible_host|default(inventory_hostname) }}" \
|
||||
"sshpass -f '/tmp/${F}' ssh \
|
||||
-o StrictHostKeyChecking=no -o PubkeyAuthentication=no \
|
||||
-o ConnectTimeout={{ ssh_timeout }} \
|
||||
'{{ dev2_ssh_user }}@\[${IP6}%{{ dev1_iface }}\]' \
|
||||
'cat /tmp/config.json 2>/dev/null | grep -i block -A2 | grep enab | head -n1'"
|
||||
args:
|
||||
executable: /bin/bash
|
||||
register: dev2_payredirect_lldp6
|
||||
changed_when: false
|
||||
failed_when: false
|
||||
ignore_errors: true
|
||||
|
||||
- name: Dev2 | Select payredirect output
|
||||
delegate_to: localhost
|
||||
set_fact:
|
||||
payredirect_raw: >-
|
||||
{{
|
||||
(dev2_payredirect_tunnel.stdout | default('') | trim)
|
||||
if (
|
||||
(dev2_payredirect_tunnel is defined) and
|
||||
((dev2_payredirect_tunnel.stdout | default('') | trim | length) > 0)
|
||||
)
|
||||
else (
|
||||
(dev2_payredirect_lldp.stdout | default('') | trim)
|
||||
if (
|
||||
(dev2_payredirect_lldp is defined) and
|
||||
((dev2_payredirect_lldp.stdout | default('') | trim | length) > 0)
|
||||
)
|
||||
else (
|
||||
(dev2_payredirect_lldp6.stdout | default('') | trim)
|
||||
if (
|
||||
(dev2_payredirect_lldp6 is defined) and
|
||||
((dev2_payredirect_lldp6.stdout | default('') | trim | length) > 0)
|
||||
)
|
||||
else ''
|
||||
)
|
||||
)
|
||||
}}
|
||||
changed_when: false
|
||||
|
||||
- name: Dev2 | Normalize payredirect value
|
||||
delegate_to: localhost
|
||||
vars:
|
||||
payredirect_raw_clean: "{{ dev2_payredirect_raw.stdout | default('') | trim | lower }}"
|
||||
_payredirect_raw_clean: "{{ payredirect_raw | default('') | trim | lower }}"
|
||||
set_fact:
|
||||
payredirect_value: >-
|
||||
{{
|
||||
payredirect_raw_clean
|
||||
if payredirect_raw_clean in ['true', 'false']
|
||||
else 'na'
|
||||
}}
|
||||
{%- if 'true' in _payredirect_raw_clean -%}
|
||||
true
|
||||
{%- elif 'false' in _payredirect_raw_clean -%}
|
||||
false
|
||||
{%- else -%}
|
||||
na
|
||||
{%- endif -%}
|
||||
changed_when: false
|
||||
|
||||
- name: Dev2 | payredirect debug
|
||||
delegate_to: localhost
|
||||
debug:
|
||||
msg:
|
||||
- "payredirect_raw={{ dev2_payredirect_raw.stdout | default('') | trim }}"
|
||||
- "tunnel rc={{ dev2_payredirect_tunnel.rc | default('n/a') }} out={{ dev2_payredirect_tunnel.stdout | default('') | trim }} err={{ dev2_payredirect_tunnel.stderr | default('') | trim }}"
|
||||
- "lldp4 rc={{ dev2_payredirect_lldp.rc | default('n/a') }} out={{ dev2_payredirect_lldp.stdout | default('') | trim }} err={{ dev2_payredirect_lldp.stderr | default('') | trim }}"
|
||||
- "lldp6 rc={{ dev2_payredirect_lldp6.rc | default('n/a') }} out={{ dev2_payredirect_lldp6.stdout | default('') | trim }} err={{ dev2_payredirect_lldp6.stderr | default('') | trim }}"
|
||||
- "payredirect_raw={{ payredirect_raw | default('') | trim }}"
|
||||
- "payredirect_value={{ payredirect_value | default('na') }}"
|
||||
|
||||
- name: Scan tracking | Dev2 payredirect outcome
|
||||
@@ -2764,6 +2801,13 @@
|
||||
non_ts_diff_found: true
|
||||
changed_when: false
|
||||
|
||||
- name: Indoor | Normalize Dev2 passfile facts (avoid undefined)
|
||||
delegate_to: localhost
|
||||
set_fact:
|
||||
dev2_passfile_used_lldp: "{{ dev2_passfile_used_lldp | default('NONE') }}"
|
||||
dev2_passfile_used_lldp6: "{{ dev2_passfile_used_lldp6 | default('NONE') }}"
|
||||
changed_when: false
|
||||
|
||||
# ----------------------- Dev2 indoor_ip resolution (ppp0/eth0.4000 preferred) -----------------------
|
||||
- name: Indoor | Compute fallback connected IP (as used for Dev2 reachability)
|
||||
delegate_to: localhost
|
||||
|
||||
Reference in New Issue
Block a user