Initial commit
This commit is contained in:
63
ansible/roles/openwrt-bridge/tasks/main.yml
Normal file
63
ansible/roles/openwrt-bridge/tasks/main.yml
Normal file
@@ -0,0 +1,63 @@
|
||||
---
|
||||
- name: Set bridge interface name
|
||||
set_fact:
|
||||
br_if: "br_{{ gateway_config.lab_name }}"
|
||||
vxlan_if: "vxlan{{ gateway_config.vni }}"
|
||||
lab_if: "{{ gateway_config.lab_if }}"
|
||||
|
||||
- name: Remove existing bridge configuration
|
||||
shell: |
|
||||
uci delete network.{{ br_if }} 2>/dev/null || true
|
||||
uci delete network.{{ br_if }}_dev 2>/dev/null || true
|
||||
uci commit network
|
||||
changed_when: true
|
||||
|
||||
- name: Create bridge device
|
||||
shell: |
|
||||
uci set network.{{ br_if }}_dev='device'
|
||||
uci set network.{{ br_if }}_dev.name='{{ br_if }}'
|
||||
uci set network.{{ br_if }}_dev.type='bridge'
|
||||
uci set network.{{ br_if }}_dev.stp='0'
|
||||
uci add_list network.{{ br_if }}_dev.ports='{{ vxlan_if }}'
|
||||
uci add_list network.{{ br_if }}_dev.ports='{{ lab_if }}'
|
||||
uci commit network
|
||||
changed_when: true
|
||||
|
||||
- name: Create bridge interface
|
||||
shell: |
|
||||
uci set network.{{ br_if }}='interface'
|
||||
uci set network.{{ br_if }}.proto='static'
|
||||
uci set network.{{ br_if }}.device='{{ br_if }}'
|
||||
uci set network.{{ br_if }}.ipaddr='{{ gateway_config.subnet | ipaddr("1") | ipaddr("address") }}'
|
||||
uci set network.{{ br_if }}.netmask='{{ gateway_config.subnet | ipaddr("netmask") }}'
|
||||
uci commit network
|
||||
changed_when: true
|
||||
|
||||
- name: Reload network configuration
|
||||
shell: /etc/init.d/network reload
|
||||
changed_when: true
|
||||
|
||||
- name: Wait for bridge to come up
|
||||
shell: ip link show {{ br_if }}
|
||||
register: bridge_check
|
||||
retries: 10
|
||||
delay: 2
|
||||
until: bridge_check.rc == 0
|
||||
changed_when: false
|
||||
|
||||
- name: Verify bridge configuration
|
||||
shell: |
|
||||
echo "=== Bridge Interface ==="
|
||||
ip link show {{ br_if }}
|
||||
echo ""
|
||||
echo "=== Bridge Members ==="
|
||||
bridge link show | grep {{ br_if }}
|
||||
echo ""
|
||||
echo "=== IP Address ==="
|
||||
ip addr show {{ br_if }}
|
||||
register: bridge_status
|
||||
changed_when: false
|
||||
|
||||
- name: Display bridge status
|
||||
debug:
|
||||
var: bridge_status.stdout_lines
|
||||
Reference in New Issue
Block a user