diff --git a/host_vars/vmhost0.pyrocufflink.blue.yml b/host_vars/vmhost0.pyrocufflink.blue.yml new file mode 100644 index 0000000..d26c61b --- /dev/null +++ b/host_vars/vmhost0.pyrocufflink.blue.yml @@ -0,0 +1,12 @@ +dhcpcd_nodev: true +dhcpcd_allow_interfaces: +- enp5s0 +- bond1 +dhcpcd_interfaces: +- name: bond1 + config: + - noipv4 + - static ip6_address=fd68:c2d2:500e:3ea3:3c35:bbaf:f9a3:ad9a/64 +storage_iface: bond1 +samba_interfaces: +- enp5s0 diff --git a/host_vars/vmhost1.pyrocufflink.blue.yml b/host_vars/vmhost1.pyrocufflink.blue.yml new file mode 100644 index 0000000..e2885fe --- /dev/null +++ b/host_vars/vmhost1.pyrocufflink.blue.yml @@ -0,0 +1,12 @@ +dhcpcd_nodev: true +dhcpcd_allow_interfaces: +- enp5s0 +- bond1 +dhcpcd_interfaces: +- name: bond1 + config: + - noipv4 + - static ip6_address=fd68:c2d2:500e:3ea3:8d5f:c3b0:a73c:55d6/64 +storage_iface: bond1 +samba_interfaces: +- enp5s0 diff --git a/hosts b/hosts index 3c3aba5..8fa009b 100644 --- a/hosts +++ b/hosts @@ -15,6 +15,7 @@ rprx0.pyrocufflink.blue [dhcpcd:children] dch-gw +vm-hosts [dhcpd:children] dch-gw @@ -43,6 +44,8 @@ git0.pyrocufflink.blue jenkins0.pyrocufflink.blue rprx0.pyrocufflink.blue smtp0.pyrocufflink.blue +vmhost0.pyrocufflink.blue +vmhost1.pyrocufflink.blue zbx0.pyrocufflink.blue [pyrocufflink-dns] @@ -72,3 +75,5 @@ dch-gw pyrocufflink [vm-hosts] +vmhost0.pyrocufflink.blue +vmhost1.pyrocufflink.blue diff --git a/roles/net-ifaces/files/vmhost0.pyrocufflink.blue.sh b/roles/net-ifaces/files/vmhost0.pyrocufflink.blue.sh new file mode 100644 index 0000000..51b3849 --- /dev/null +++ b/roles/net-ifaces/files/vmhost0.pyrocufflink.blue.sh @@ -0,0 +1,51 @@ +#!/bin/sh + +set -e + + +add_slave() { + local master=$1 + local slave=$2 + + ip link set ${slave} down + echo +${slave} > /sys/class/net/${master}/bonding/slaves + ip link set ${slave} up +} + + +make_bond() { + local bond=$1 + local mode=${2:-802.3ad} + + if [ ! -d /sys/module/bonding ]; then + modprobe bonding + fi + echo +${bond} > /sys/class/net/bonding_masters + echo ${mode} > /sys/class/net/${bond}/bonding/mode + echo 100 > /sys/class/net/${bond}/bonding/miimon +} + + +# VM Network +make_bond bond0 +add_slave bond0 enp10s0f0 +add_slave bond0 enp10s0f1 + +ip link add link bond0 name vlan30 type vlan id 30 +ip link add link bond0 name vlan101 type vlan id 101 +ip link set bond0 up + +ip link add br0 type bridge +ip link set vlan30 master br0 +ip link set br0 up + +ip link add br1 type bridge +ip link set vlan101 master br1 +ip link set br1 up + + +# Storage Network +make_bond bond1 +add_slave bond1 enp8s0f0 +add_slave bond1 enp8s0f1 +ip link set bond1 mtu 9000 diff --git a/roles/net-ifaces/files/vmhost1.pyrocufflink.blue.sh b/roles/net-ifaces/files/vmhost1.pyrocufflink.blue.sh new file mode 100644 index 0000000..9c171f6 --- /dev/null +++ b/roles/net-ifaces/files/vmhost1.pyrocufflink.blue.sh @@ -0,0 +1,52 @@ +#!/bin/sh + +set -e + + +add_slave() { + local master=$1 + local slave=$2 + + ip link set ${slave} down + echo +${slave} > /sys/class/net/${master}/bonding/slaves + ip link set ${slave} up +} + + +make_bond() { + local bond=$1 + local mode=${2:-802.3ad} + + if [ ! -d /sys/module/bonding ]; then + modprobe bonding + fi + echo +${bond} > /sys/class/net/bonding_masters + echo ${mode} > /sys/class/net/${bond}/bonding/mode + echo 100 > /sys/class/net/${bond}/bonding/miimon +} + + +# VM Network +make_bond bond0 +#add_slave bond0 enp10s0f0 +#add_slave bond0 enp10s0f1 +add_slave bond0 enp10s0 + +ip link add link bond0 name vlan30 type vlan id 30 +ip link add link bond0 name vlan101 type vlan id 101 +ip link set bond0 up + +ip link add br0 type bridge +ip link set vlan30 master br0 +ip link set br0 up + +ip link add br1 type bridge +ip link set vlan101 master br1 +ip link set br1 up + + +# Storage Network +make_bond bond1 +add_slave bond1 enp8s0f0 +add_slave bond1 enp8s0f1 +ip link set bond1 mtu 9000