#!/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 }