1615
This commit is contained in:
@@ -2637,91 +2637,128 @@
|
|||||||
non_ts_diff_found: true
|
non_ts_diff_found: true
|
||||||
changed_when: false
|
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 -----------------------
|
# ----------------------- Dev2 payredirect config flag -> payredirect -----------------------
|
||||||
- name: Dev2 | Read payredirect enabled flag
|
- name: Dev2 | Read payredirect (tunnel)
|
||||||
when:
|
when:
|
||||||
- (dev2_passfile_used | default('NONE')) != 'NONE'
|
- tunnel_ok | default(false)
|
||||||
or ((dev2_passfile_used_lldp | default('NONE')) != 'NONE')
|
- dev2_passfile_used != 'NONE'
|
||||||
or ((dev2_passfile_used_lldp6 | default('NONE')) != 'NONE')
|
|
||||||
delegate_to: localhost
|
delegate_to: localhost
|
||||||
shell: |
|
shell: |
|
||||||
set -o pipefail
|
PORT="{{ _local_port }}"
|
||||||
|
sshpass -f "{{ dev2_passfile_used }}" ssh {{ ssh_opts_common }} \
|
||||||
# Try every DEV2 shell path that is available.
|
-o ConnectTimeout={{ ssh_timeout }} \
|
||||||
# Stop only after a path actually returns true/false.
|
-p "$PORT" "{{ dev2_ssh_user }}@127.0.0.1" \
|
||||||
if [ "{{ dev2_passfile_used | default('NONE') }}" != "NONE" ]; then
|
"cat /tmp/config.json 2>/dev/null | grep -i block -A2 | grep enab | head -n1"
|
||||||
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
|
|
||||||
args:
|
args:
|
||||||
executable: /bin/bash
|
executable: /bin/bash
|
||||||
register: dev2_payredirect_raw
|
register: dev2_payredirect_tunnel
|
||||||
changed_when: false
|
changed_when: false
|
||||||
failed_when: false
|
failed_when: false
|
||||||
ignore_errors: true
|
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
|
- name: Dev2 | Normalize payredirect value
|
||||||
delegate_to: localhost
|
delegate_to: localhost
|
||||||
vars:
|
vars:
|
||||||
payredirect_raw_clean: "{{ dev2_payredirect_raw.stdout | default('') | trim | lower }}"
|
_payredirect_raw_clean: "{{ payredirect_raw | default('') | trim | lower }}"
|
||||||
set_fact:
|
set_fact:
|
||||||
payredirect_value: >-
|
payredirect_value: >-
|
||||||
{{
|
{%- if 'true' in _payredirect_raw_clean -%}
|
||||||
payredirect_raw_clean
|
true
|
||||||
if payredirect_raw_clean in ['true', 'false']
|
{%- elif 'false' in _payredirect_raw_clean -%}
|
||||||
else 'na'
|
false
|
||||||
}}
|
{%- else -%}
|
||||||
|
na
|
||||||
|
{%- endif -%}
|
||||||
changed_when: false
|
changed_when: false
|
||||||
|
|
||||||
- name: Dev2 | payredirect debug
|
- name: Dev2 | payredirect debug
|
||||||
delegate_to: localhost
|
delegate_to: localhost
|
||||||
debug:
|
debug:
|
||||||
msg:
|
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') }}"
|
- "payredirect_value={{ payredirect_value | default('na') }}"
|
||||||
|
|
||||||
- name: Scan tracking | Dev2 payredirect outcome
|
- name: Scan tracking | Dev2 payredirect outcome
|
||||||
@@ -2764,6 +2801,13 @@
|
|||||||
non_ts_diff_found: true
|
non_ts_diff_found: true
|
||||||
changed_when: false
|
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) -----------------------
|
# ----------------------- Dev2 indoor_ip resolution (ppp0/eth0.4000 preferred) -----------------------
|
||||||
- name: Indoor | Compute fallback connected IP (as used for Dev2 reachability)
|
- name: Indoor | Compute fallback connected IP (as used for Dev2 reachability)
|
||||||
delegate_to: localhost
|
delegate_to: localhost
|
||||||
|
|||||||
Reference in New Issue
Block a user