--- - name: Configure ethernet interface metadata and SFP options community.routeros.api_find_and_modify: ignore_dynamic: false path: interface ethernet find: default-name: "{{ item.default_name }}" values: "{{ item.config }}" loop: - default_name: ether1 config: comment: Mój pc - default_name: ether2 config: comment: Wifi środek - default_name: ether3 config: comment: OpenWrt AP (dlink) - default_name: ether8 config: comment: Serwer - default_name: ether9 config: comment: Wifi góra - default_name: ether10 config: comment: Kamera na domu - default_name: ether11 config: comment: KVM serwer - default_name: sfp-sfpplus1 config: auto-negotiation: false comment: GPON WAN speed: 2.5G-baseX - default_name: sfp-sfpplus2 config: comment: GARAŻ loop_control: label: "{{ item.default_name }}" # community.routeros.api_modify can't remove hardware disks # but it tries to do so with handle_absent_entries: remove # Working around by manually deleting other ones - name: Read current disk entries community.routeros.api_info: path: disk register: routeros_disks check_mode: false - name: Remove stale software-defined disk entries community.routeros.api: path: disk remove: "{{ item['.id'] }}" loop: >- {{ routeros_disks.result | rejectattr('type', 'in', ['hardware', 'partition']) | rejectattr('slot', 'equalto', 'tmp') }} loop_control: label: "{{ item.slot }}" - name: Create temporary disk for containers if absent community.routeros.api: path: disk add: "slot=tmp type=tmpfs" when: routeros_disks.result | selectattr('slot', 'equalto', 'tmp') | list | length == 0 - name: Configure temporary disk for containers community.routeros.api_find_and_modify: ignore_dynamic: false path: disk find: slot: tmp values: type: tmpfs - name: Configure switch settings community.routeros.api_find_and_modify: ignore_dynamic: false path: interface ethernet switch find: .id: "0" values: qos-hw-offloading: true # Enabling L3 offloading would cause all packets to skip firewall and NAT l3-hw-offloading: false - name: Configure neighbor discovery settings community.routeros.api_find_and_modify: ignore_dynamic: false path: ip neighbor discovery-settings find: {} values: discover-interface-list: '!dynamic'