--- # Copyright 2020, VEXXHOST, Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. - name: Add required vlans become: true become_user: root block: - name: Install vlan package package: name: vlan state: present register: install_vlan until: install_vlan is success retries: 5 delay: 2 - name: Load vlan modules # noqa: no-handler modprobe: name: 8021q state: present when: install_vlan is changed - name: Copy vlans config template: src: vlans.cfg.j2 dest: "/etc/network/interfaces.d/vlan-{{ item.id }}.cfg" mode: "0644" with_items: "{{ frr_vlans }}" register: distribute_vlans - name: Stop interface # noqa: no-handler command: "ifdown {{ item.item['vlan-raw-device'] }}.{{ item.item.id }}" with_items: "{{ distribute_vlans.results }}" when: item is changed changed_when: false - name: Start interface # noqa: no-handler command: "ifup {{ item.item['vlan-raw-device'] }}.{{ item.item.id }}" with_items: "{{ distribute_vlans.results }}" when: item is changed changed_when: false