Ubuntu: support non-persistent veth configuration
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
This commit is contained in:
parent
50dddc3ace
commit
f9b02c8bf5
42
ansible/roles/veth/tasks/Debian.yml
Normal file
42
ansible/roles/veth/tasks/Debian.yml
Normal file
@ -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
ansible/roles/veth/tasks/RedHat.yml
Normal file
43
ansible/roles/veth/tasks/RedHat.yml
Normal file
@ -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
|
@ -1,43 +1,2 @@
|
|||||||
---
|
---
|
||||||
- name: Ensure veth sysconfig network control scripts exist
|
- include_tasks: "{{ ansible_os_family }}.yml"
|
||||||
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
|
|
||||||
|
Loading…
Reference in New Issue
Block a user