Ajout du code gérant l'option réseau

pull/1/head
Nicolas MORIN 11 months ago
parent aa3bc0ae3a
commit a3ccec6c2b

@ -53,6 +53,21 @@ nouvMV()
"iso") "iso")
echo "--cdrom ${1} \\" >> ${chemin_mv} echo "--cdrom ${1} \\" >> ${chemin_mv}
;; ;;
"reseau")
if [[ "${4}" != "false" ]]; then
echo "#PONT=${4}" >> ${chemin_mv}
fi
case "${6}" in
"a")
echo "#VLAN=${7}" >> ${chemin_mv}
;;
"t")
echo "#8021Q=${7}" >> ${chemin_mv}
;;
esac
echo "-device ${2},netdev=${1} -netdev tap,id=${1},ifname=${1},script=no,downscript=no \\" >> ${chemin_mv}
;;
esac esac
} }
@ -209,6 +224,120 @@ creeMV()
presenceParametre "$#" "$1" presenceParametre "$#" "$1"
echo "reseau parametre=${parametre}" # Debogage echo "reseau parametre=${parametre}" # Debogage
shift shift
# Interface réseau simple :
## <nom interface>:(virtio|e1000):<activation pont>
# <nom interface>:(virtio|e1000):n
#
# Interface réseau dans un pont
## <nom interface>:(virtio|e1000):o:<nom pont>:<activation 8021q>
# <nom interface>:(virtio|e1000):o:<nom pont>:n
#
# Interface réseau dans un pont avec gestion des VLAN
# <nom interface>:(virtio|e1000):o:<nom pont>:o:(t:<VIDs>|a:<VID>)
# <nom interface>:(virtio|e1000):(n|o:<nom pont>:(n|o:(t:<VIDs>|a:<VID>)))
# Initialisation des variables
reseau_nom_interface=false
reseau_type=false
reseau_activ_pont=false
reseau_nom_pont=false
reseau_activ_8021q=false
reseau_mode_8021q=false
reseau_vid=false
reseau_nom_interface=$( echo ${1} | awk -F: '{print $1}' )
if [[ -z "${reseau_nom_interface}" ]]; then
die "L'interface réseau n'est pas renseigné.\nSyntaxe minimum attendue : <nom interface>:(virtio|e1000):n." 5
fi
reseau_type=$( echo ${1} | awk -F: '{print $2}' )
if [[ -z "${reseau_type}" ]]; then
die "Le type d'interface réseau n'est pas renseigné.\nSyntaxe minimum attendue : <nom interface>:(virtio|e1000):n." 5
fi
case ${reseau_type} in
"virtio")
reseau_type="virtio-net-pci"
;;
"e1000")
;;
*)
die "Le type d'interface réseau n'a pas une valeur connue.\nSyntaxe minimum attendue : <nom interface>:(virtio|e1000):n." 5
;;
esac
reseau_activ_pont=$( echo ${1} | awk -F: '{print $3}' )
echo "reseau_activ_pont=${reseau_activ_pont}" # Debogage
if [[ -z "${reseau_activ_pont}" ]]; then
die "L'activation du pont n'est pas renseigné.\nVoici les deux syntaxes minimum posisbles : \n\tSans pont :\n\t\t<nom interface>:(virtio|e1000):n\n\tAvec pont :\n\t\t<nom interface>:(virtio|e1000):o:<nom pont>:n" 5
fi
case ${reseau_activ_pont} in
"n"|"N")
;;
"o"|"O")
reseau_nom_pont=$( echo ${1} | awk -F: '{print $4}' )
if [[ -z "${reseau_nom_pont}" ]]; then
die "Le nom du pont réseau n'est pas renseigné.\nSyntaxe minimum attendue : <nom interface>:(virtio|e1000):o:<nom pont>:n." 5
fi
reseau_activ_8021q=$( echo ${1} | awk -F: '{print $5}' )
if [[ -z "${reseau_activ_8021q}" ]]; then
die "L'activation du VLAN n'est pas renseigné.\nVoici les deux syntaxes minimum posisbles :\n\tSans VLAN :\n\t\t<nom interface>:(virtio|e1000):o:<nom pont>:n\n\tAvec VLAN :\n\t\t<nom interface>:(virtio|e1000):o:<nom pont>:o:(t:<VIDs>|a:<VID>)" 5
fi
case ${reseau_activ_8021q} in
"n"|"N")
;;
"o"|"O")
reseau_mode_8021q=$( echo ${1} | awk -F: '{print $6}' )
if [[ -z "${reseau_mode_8021q}" ]]; then
die "Le mode du 802.1Q n'est pas renseigné.\nSyntaxe attendue : <nom interface>:(virtio|e1000):o:<nom pont>:o:(t:<VIDs>|a:<VID>)" 5
fi
case ${reseau_mode_8021q} in
"t"|"T")
reseau_vid=$( echo ${1} | awk -F: '{print $7}' )
echo "reseau_vid=${reseau_vid}" # Debogage
if [[ -z "${reseau_vid}" ]]; then
die "Les identifiants de VLAN ne sont pas renseignés.\nSyntaxe attendue : <nom interface>:(virtio|e1000):o:<nom pont>:o:(t:<VIDs>|a:<VID>).\nExemple pour un accès via trunk aux VLAN 10 et 20 :\n\t qemu-adm [...] -r tap0:virtio:o:br0:o:t:10,20" 5
fi
for vid in $(echo $reseau_vid | sed 's/,/ /g'); do
echo "vid=${vid}" # Debogage
if [[ !(${vid} -ge 1 && ${vid} -le 4096) ]]; then
die "${vid} n'est pas une valeur correcte. L'attendu est un ou plusieurs chiffres comprise entre 1 et 4096 séparé par une virgule.\nExemple pour un accès via trunk aux VLAN 10 et 20 :\n\t qemu-adm [...] -r tap0:virtio:o:br0:o:t:10,20"
fi
done
;;
"a"|"A")
reseau_vid=$( echo ${1} | awk -F: '{print $7}' )
if [[ -z "${reseau_vid}" ]]; then
die "L'identifiant de VLAN n'est pas renseignés.\nSyntaxe attendue : <nom interface>:(virtio|e1000):o:<nom pont>:o:(t:<VIDs>|a:<VID>).\nExemple pour un accès au VLAN 10 :\n\t qemu-adm [...] -r tap0:virtio:o:br0:o:a:10" 5
fi
if [[ ! "${reseau_vid}" =~ ^[0-9]+$ ]]; then
die "${reseau_vid} n'est pas une valeur correcte. L'attendu est un chiffre compris entre 1 et 4096.\nExemple pour un accès au VLAN 10 :\n\t qemu-adm [...] -r tap0:virtio:o:br0:o:a:10"
fi
if [[ !(${reseau_vid} -ge 1 && ${reseau_vid} -le 4096) ]]; then
die "${reseau_vid} n'est pas une valeur correcte. L'attendu est un chiffre compris entre 1 et 4096.\nExemple pour un accès au VLAN 10 :\n\t qemu-adm [...] -r tap0:virtio:o:br0:o:a:10"
fi
;;
*)
die "${reseau_mode_8021q} n'est pas une valeur connue.\nSyntaxe attendue : <nom interface>:(virtio|e1000):o:<nom pont>:o:(t:<VIDs>|a:<VID>)\n"
;;
esac
;;
*)
die "${reseau_activ_8021q} n'est pas une valeur connue.\nVoici les deux syntaxes minimum posisbles : \n\tSans VLAN :\n\t\t<nom interface>:(virtio|e1000):o:<nom pont>:n\n\tAvec VLAN :\n\t\t<nom interface>:(virtio|e1000):o:<nom pont>:o:(t:<VIDs>|a:<VID>)" 5
;;
esac
;;
*)
die "${reseau_activ_pont} n'est pas une valeur connue.\nVoici les deux syntaxes minimum posisbles : \n\tSans pont :\n\t\t<nom interface>:(virtio|e1000):n\n\tAvec pont :\n\t\t<nom interface>:(virtio|e1000):o:<nom pont>:n" 5
;;
esac
commandes_a_executer+=( "nouvMV reseau ${reseau_nom_interface} ${reseau_type} ${reseau_activ_pont} ${reseau_nom_pont} ${reseau_activ_8021q} ${reseau_mode_8021q} ${reseau_vid}")
echo "nouvMV reseau ${reseau_nom_interface} ${reseau_type} ${reseau_activ_pont} ${reseau_nom_pont} ${reseau_activ_8021q} ${reseau_mode_8021q} ${reseau_vid}" # Debogage
;; ;;
'-p') # Parametres '-p') # Parametres
echo "parametres" # Debogage echo "parametres" # Debogage

Loading…
Cancel
Save