summaryrefslogtreecommitdiff
path: root/roles/vm/host/network/tasks/main.yml
diff options
context:
space:
mode:
Diffstat (limited to 'roles/vm/host/network/tasks/main.yml')
-rw-r--r--roles/vm/host/network/tasks/main.yml39
1 files changed, 39 insertions, 0 deletions
diff --git a/roles/vm/host/network/tasks/main.yml b/roles/vm/host/network/tasks/main.yml
new file mode 100644
index 00000000..e7668917
--- /dev/null
+++ b/roles/vm/host/network/tasks/main.yml
@@ -0,0 +1,39 @@
+---
+- name: install ifenslave package
+ when: "'bonds' in network"
+ apt:
+ name: ifenslave
+ state: present
+
+- name: install vlan package
+ when: "'vlans' in network"
+ apt:
+ name: vlan
+ state: present
+
+- name: create network interfaces
+ template:
+ src: interfaces.j2
+ dest: /etc/network/interfaces
+
+- name: create network bridges
+ when: "'bridges' in vm_host.network"
+ block:
+ - name: generate bridge interface config
+ loop: "{{ vm_host.network.bridges | default({}) | dict2items }}"
+ loop_control:
+ label: "{{ item.key }}"
+ template:
+ src: bridge-interfaces.j2
+ dest: "/etc/network/interfaces.d/br-{{ item.key }}"
+ register: vmhost_bridge_config
+
+ ## We don't try to be to clever here: aka don't call ifdown before ifup because
+ ## if there are VMs running they would end up with a broken network
+ - name: bring up bridge interfaces
+ loop: "{{ vmhost_bridge_config.results }}"
+ loop_control:
+ label: "br-{{ item.item.key }}"
+ when: item is changed
+ command: "/sbin/ifup br-{{ item.item.key }}"
+ failed_when: false