Ajout du code gérant l'option réseau
This commit is contained in:
@@ -53,6 +53,21 @@ nouvMV()
|
||||
"iso")
|
||||
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
|
||||
}
|
||||
|
||||
@@ -209,6 +224,120 @@ creeMV()
|
||||
presenceParametre "$#" "$1"
|
||||
echo "reseau parametre=${parametre}" # Debogage
|
||||
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
|
||||
echo "parametres" # Debogage
|
||||
|
||||
Reference in New Issue
Block a user