You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

81 lines
1.4 KiB

#!/bin/bash -eu
HOSTS=""
proba() {
local n=$(($RANDOM%100))
[ $n -lt $1 ] && return 0 || return 1
}
connect() {
local l="$(seq 1 $S | tr ' ' '\n' | sort -R | tr '\n' ' ')"
local n=$S
echo "*** n=$n"
NETWORKS=""
proba 100 && {
s=$(echo $l | cut -d ' ' -f $n); n=$(($n-1))
echo "(100) l:$l n:$n s:$s"
NETWORKS="$NETWORKS \$NET_$s"
echo "192.168.$s.${NET[$s]} $1" >> hosts
NET[$s]=$((${NET[$s]}+1))
echo -e "" >> $1.interfaces
}
proba 50 && {
s=$(echo $l | cut -d ' ' -f $n); n=$(($n-1))
echo "(50) l:$l n:$n s:$s"
NETWORKS="$NETWORKS \$NET_$s"
echo "192.168.$s.${NET[$s]} $1" >> hosts
NET[$s]=$((${NET[$s]}+1))
}
proba 20 && {
s=$(echo $l | cut -d ' ' -f $n); n=$(($n-1))
echo "(20) l:$l n:$n s:$s"
NETWORKS="$NETWORKS \$NET_$s"
echo "192.168.$s.${NET[$s]} $1" >> hosts
NET[$s]=$((${NET[$s]}+1))
}
}
build() {
local n
declare -a NET
echo "PWD=$PWD"
# Nombre de machines
N=8
# Nombre de switchs
S=5
set -x
for i in $(seq 1 $S); do
NET[$i]=1
done
set +x
rm -f hosts
i=1;
while [ $i -le $N ]; do
n=vm-$i
rm -f $n.interfaces
vdn-build $n
connect $n
echo "N=$NETWORKS"
vdn-config $n GUEST_SYS "debian/buster"
vdn-config $n NETWORKS "$NETWORKS"
vdn-config $n MEMORY "256"
i=$(($i+1))
done
}