browbeat/rally/rally-plugins/workloads/crucible/templates/vlans.sh.j2

55 lines
1.4 KiB
Django/Jinja

#!/bin/bash
# Check if script is run as root
if [ "$EUID" -ne 0 ]; then
echo "Please run as root (with sudo)."
exit 1
fi
# Check if action is provided
if [ $# -eq 0 ]; then
echo "Usage: $0 [create|delete]"
exit 1
fi
action=$1 # First command-line argument
# Set variables
ext_iface="{{ ext_iface }}"
vlan_base_id=1
num_vlans={{ num_vlans }}
cidr_prefix="{{ cidr_prefix }}"
if [ "$action" == "create" ]; then
# Create VLAN interfaces
ip link set dev $ext_iface up
for ((i=0; i<$num_vlans; i++)); do
vlan_id=$((vlan_base_id + i))
vlan_interface="${ext_iface}.${vlan_id}"
ip link add link $ext_iface name $vlan_interface type vlan id $vlan_id
ip link set dev $vlan_interface up
external_gateway="${cidr_prefix}.$((vlan_base_id + i)).1/24"
ip addr add $external_gateway dev $vlan_interface
echo "VLAN $vlan_id configuration completed successfully."
done
echo "All configurations completed successfully."
elif [ "$action" == "delete" ]; then
# Delete VLAN interfaces
for ((i=0; i<$num_vlans; i++)); do
vlan_id=$((vlan_base_id + i))
vlan_interface="${ext_iface}.${vlan_id}"
ip link set dev $vlan_interface down
ip link delete $vlan_interface
echo "VLAN $vlan_id removed successfully."
done
echo "Cleanup completed successfully."
else
echo "Invalid action. Please provide 'create' or 'delete' as the argument."
exit 1
fi