This commit is contained in:
2025-11-26 16:52:18 +02:00
parent e986f25b2d
commit 3b08800993

View File

@@ -173,6 +173,58 @@
- "dev2_conn_method={{ dev2_conn_method }}" - "dev2_conn_method={{ dev2_conn_method }}"
- "lldp_dev2_ip={{ lldp_dev2_ip | default('<none>') }}" - "lldp_dev2_ip={{ lldp_dev2_ip | default('<none>') }}"
# ------ LLDP IPv6 discovery for tunnel mode (Dev1 → Dev2 link-local) ------
- name: Discover DEV2 candidate IPv6 via LLDP on DEV1 (best-effort)
when: dev2_conn_method == "tunnel"
ansible.builtin.raw: >
{{ pathprefix }}
DIGITS="{{ dev2_lldp_digits }}";
cat /var/run/lldp_server.json 2>/dev/null \
| grep "${DIGITS}" -A 15 \
| grep 'address_ipv6' \
| awk -F'"' '{ print $4 }' \
| head -n1
register: dev2_lldp_ip6_raw
changed_when: false
failed_when: false
- name: Capture LLDP-derived DEV2 IPv6 (if any)
when: dev2_conn_method == "tunnel"
ansible.builtin.set_fact:
lldp_dev2_ip6: "{{ (dev2_lldp_ip6_raw.stdout | default('')) | trim }}"
changed_when: false
- name: Debug LLDP IPv6 candidate for DEV2 (new debug)
when: dev2_conn_method == "tunnel" and debugging | bool
delegate_to: localhost
ansible.builtin.debug:
msg:
- "LLDP candidate IPv6={{ lldp_dev2_ip6 | default('<none>') }}"
# Build the remote tunnel target: prefer LLDP IPv6 if present, else 192.168.1.1
- name: Build tunnel remote target for DEV2 (prefer LLDP IPv6 when available)
when: dev2_conn_method == "tunnel"
delegate_to: localhost
ansible.builtin.set_fact:
dev2_tunnel_target_host: >-
{{
(lldp_dev2_ip6 is defined and (lldp_dev2_ip6 | string | trim | length > 0))
| ternary(
'[' ~ (lldp_dev2_ip6 | string | trim) ~ '%' ~ (dev1_iface | string | trim) ~ ']',
dev2_host | string
)
}}
dev2_tunnel_target_port: "{{ dev2_port | string }}"
changed_when: false
- name: Debug tunnel remote target for DEV2 (IPv4/IPv6)
when: dev2_conn_method == "tunnel" and debugging | bool
delegate_to: localhost
ansible.builtin.debug:
msg:
- "dev2_tunnel_target={{ dev2_tunnel_target_host | default(dev2_host) }}:{{ dev2_tunnel_target_port | default(dev2_port) }}"
# ------ LLDP IPv6 discovery for tunnel mode (Dev1 → Dev2 link-local) ------ # ------ LLDP IPv6 discovery for tunnel mode (Dev1 → Dev2 link-local) ------
- name: Discover DEV2 candidate IPv6 via LLDP on DEV1 (best-effort) - name: Discover DEV2 candidate IPv6 via LLDP on DEV1 (best-effort)
when: dev2_conn_method == "tunnel" when: dev2_conn_method == "tunnel"
@@ -459,7 +511,7 @@
HOST="{{ ansible_host | default(inventory_hostname) }}" HOST="{{ ansible_host | default(inventory_hostname) }}"
sshpass -p '{{ dev1_pass }}' ssh -f -N {{ ssh_opts_common }} \ sshpass -p '{{ dev1_pass }}' ssh -f -N {{ ssh_opts_common }} \
-M -S "{{ _ctrl_sock }}" \ -M -S "{{ _ctrl_sock }}" \
-L "127.0.0.1:{{ _local_port }}:{{ dev2_tunnel_target | default(dev2_host ~ ':' ~ dev2_port) }}" \ -L "127.0.0.1:{{ _local_port }}:{{ dev2_tunnel_target_host | default(dev2_host) }}:{{ dev2_tunnel_target_port | default(dev2_port) }}" \
"${USER}@${HOST}" "${USER}@${HOST}"
args: args:
executable: /bin/bash executable: /bin/bash