Skip to content

Instantly share code, notes, and snippets.

@hansode
Last active August 29, 2015 13:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hansode/10719744 to your computer and use it in GitHub Desktop.
Save hansode/10719744 to your computer and use it in GitHub Desktop.
$ ./setup-brvlan-pair.sh
=> /etc/sysconfig/network-scripts/ifcfg-brvlan2001
DEVICE=brvlan2001
TYPE=Bridge
BOOTPROTO=none
ONBOOT=yes
=> /etc/sysconfig/network-scripts/ifcfg-vlan2001
DEVICE=vlan2001
BOOTPROTO=none
ONBOOT=yes
BRIDGE=brvlan2001
PHYSDEV=ethxxx
$ ifup vlan2001
#!/bin/bash
#
# requires:
# bash
#
set -e
set -o pipefail
#set -x
# variables
## vlan
tagged_id=${1:-2001}
vlan_if=vlan${tagged_id}
physdev_if=ethxxx
## bridge
bridge_if=brvlan${tagged_id}
# functions
function exists_ifcfg?() {
local device=${1}
if [[ -f /etc/sysconfig/network-scripts/ifcfg-${device} ]]; then
echo "already exists: /etc/sysconfig/network-scripts/ifcfg-${device}" >&2
return 1
fi
}
# ~~~
# |
# ${physdev_if}
# |
# ${vlan_if} bridge=${bridge_if} physdev=${physdev_if}
# |
# ${bridge_if}
#
# ./bin/ifcfg-setup render bridge ${bridge_if}
## validate
exists_ifcfg? ${bridge_if}
exists_ifcfg? ${vlan_if}
## main
echo "=> /etc/sysconfig/network-scripts/ifcfg-${bridge_if}"
cat <<EOS
DEVICE=${bridge_if}
TYPE=Bridge
BOOTPROTO=none
ONBOOT=yes
EOS
# ./bin/ifcfg-setup render vlan ${vlan_if} bridge=${bridge_if} physdev=${physdev_if}
echo "=> /etc/sysconfig/network-scripts/ifcfg-${vlan_if}"
cat <<EOS
DEVICE=${vlan_if}
BOOTPROTO=none
ONBOOT=yes
BRIDGE=${bridge_if}
PHYSDEV=${physdev_if}
EOS
##
echo
cat <<EOS
$ ifup ${vlan_if}
EOS
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment