Skip to content
This repository has been archived by the owner on May 31, 2022. It is now read-only.

Commit

Permalink
Ubuntu: support non-persistent veth configuration
Browse files Browse the repository at this point in the history
Adds support for veth patch pair configuration on Ubuntu. Currently this
is not persistent across reboots. This will need to be addressed once
the network configuration model is chosen for Ubuntu.

Change-Id: I006d46954456cf30ce4e743fcbe9b2862d43dd01
Story: 2004960
Task: 41545
  • Loading branch information
markgoddard committed Jan 28, 2021
1 parent 4c86313 commit 1ebadae
Show file tree
Hide file tree
Showing 3 changed files with 86 additions and 42 deletions.
42 changes: 42 additions & 0 deletions ansible/roles/veth/tasks/Debian.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
---
# FIXME: Not persistent!
- name: Ensure veth pair exists (Debian)
command:
cmd: "ip link add dev {{ item.device }} type veth peer name {{ item.peer_device }}"
creates: "/sys/class/net/{{ item.device }}"
become: true
with_items: "{{ veth_interfaces }}"

- name: Set veth MTU (Debian)
command: "ip link set {{ item.device }} mtu {{ item.mtu }}"
become: true
with_items: "{{ veth_interfaces }}"
when: item.mtu is defined and item.mtu

- name: Set veth peer MTU (Debian)
command: "ip link set {{ item.peer_device }} mtu {{ item.peer_mtu }}"
become: true
with_items: "{{ veth_interfaces }}"
when: item.peer_mtu is defined and item.peer_mtu

- name: Plug veth into bridge (Debian)
command: "ip link set {{ item.device }} master {{ item.bridge }}"
become: true
with_items: "{{ veth_interfaces }}"
when: item.bridge is defined

- name: Plug veth peer into bridge (Debian)
command: "ip link set {{ item.peer_device }} master {{ item.peer_bridge }}"
become: true
with_items: "{{ veth_interfaces }}"
when: item.peer_bridge is defined

- name: Ensure veth is up (Debian)
command: "ip link set {{ item.device }} up"
with_items: "{{ veth_interfaces }}"
become: true

- name: Ensure veth peer is up (Debian)
command: "ip link set {{ item.peer_device }} up"
with_items: "{{ veth_interfaces }}"
become: true
43 changes: 43 additions & 0 deletions ansible/roles/veth/tasks/RedHat.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
---
- name: Ensure veth sysconfig network control scripts exist
copy:
src: "{{ item }}"
dest: "{{ network_scripts_dir }}/{{ item }}"
owner: root
group: root
mode: 0755
with_items:
- "ifup-veth"
- "ifdown-veth"
become: True
register: ctl_result

- name: Ensure veth sysconfig network interface files exist
template:
src: ifcfg-veth.j2
dest: "{{ network_scripts_dir }}/ifcfg-{{ item.device }}"
owner: root
group: root
mode: 0644
with_items: "{{ veth_interfaces }}"
become: True
register: veth_result

- name: Ensure veth peer sysconfig network interface files exist
template:
src: ifcfg-peer.j2
dest: "{{ network_scripts_dir }}/ifcfg-{{ item.peer_device }}"
owner: root
group: root
mode: 0644
with_items: "{{ veth_interfaces }}"
become: True
register: peer_result

- name: Bounce veth interfaces
shell: ifdown {{ item[0].item.device }} ; ifup {{ item[0].item.device }}
with_together:
- "{{ veth_result.results }}"
- "{{ peer_result.results }}"
when: ctl_result is changed or item[0] is changed or item[1] is changed
become: True
43 changes: 1 addition & 42 deletions ansible/roles/veth/tasks/main.yml
Original file line number Diff line number Diff line change
@@ -1,43 +1,2 @@
---
- name: Ensure veth sysconfig network control scripts exist
copy:
src: "{{ item }}"
dest: "{{ network_scripts_dir }}/{{ item }}"
owner: root
group: root
mode: 0755
with_items:
- "ifup-veth"
- "ifdown-veth"
become: True
register: ctl_result

- name: Ensure veth sysconfig network interface files exist
template:
src: ifcfg-veth.j2
dest: "{{ network_scripts_dir }}/ifcfg-{{ item.device }}"
owner: root
group: root
mode: 0644
with_items: "{{ veth_interfaces }}"
become: True
register: veth_result

- name: Ensure veth peer sysconfig network interface files exist
template:
src: ifcfg-peer.j2
dest: "{{ network_scripts_dir }}/ifcfg-{{ item.peer_device }}"
owner: root
group: root
mode: 0644
with_items: "{{ veth_interfaces }}"
become: True
register: peer_result

- name: Bounce veth interfaces
shell: ifdown {{ item[0].item.device }} ; ifup {{ item[0].item.device }}
with_together:
- "{{ veth_result.results }}"
- "{{ peer_result.results }}"
when: ctl_result is changed or item[0] is changed or item[1] is changed
become: True
- include_tasks: "{{ ansible_os_family }}.yml"

0 comments on commit 1ebadae

Please sign in to comment.