Ajout de la gestion des interfaces réseaux dans un pont simple
+ Ajout des options séries et affichage
This commit is contained in:
@@ -84,8 +84,11 @@ nouvMV()
|
||||
echo "-cdrom ${1} \\" >> ${chemin_mv}
|
||||
;;
|
||||
"reseau")
|
||||
if [[ "${4}" != "false" ]]; then
|
||||
if [[ "${4}" != "faux" ]]; then
|
||||
echo "#PONT=${4}" >> ${chemin_mv}
|
||||
if [[ "${5}" == "n" ]]; then
|
||||
echo "#VLAN=0" >> ${chemin_mv}
|
||||
fi
|
||||
fi
|
||||
case "${6}" in
|
||||
"a")
|
||||
@@ -95,13 +98,33 @@ nouvMV()
|
||||
echo "#8021Q=${7}" >> ${chemin_mv}
|
||||
;;
|
||||
esac
|
||||
echo "#INTERFACE=${1}" >> ${chemin_mv}
|
||||
if [[ "${4}" != "faux" ]]; then
|
||||
echo "#INTERFACE=${1}" >> ${chemin_mv}
|
||||
fi
|
||||
|
||||
echo "-device ${2},netdev=${1} -netdev tap,id=${1},ifname=${1},script=no,downscript=no \\" >> ${chemin_mv}
|
||||
;;
|
||||
"kvm")
|
||||
echo "-enable-kvm \\" >> ${chemin_mv}
|
||||
;;
|
||||
"series")
|
||||
echo "-serial mon:stdio \\" >> ${chemin_mv}
|
||||
;;
|
||||
"spice")
|
||||
if [[ "${3}" != "faux" ]]; then
|
||||
echo "-object secret,id=spice-mdp,data=${4} -spice addr=${1},port=${2},password-secret=spice-mdp \\" >> ${chemin_mv}
|
||||
else
|
||||
echo "-spice addr=${1},port=${2},disable-ticketing=on \\" >> ${chemin_mv}
|
||||
fi
|
||||
;;
|
||||
"gtk")
|
||||
echo "-vga virtio -display sdl,gl=on \\" >> ${chemin_mv}
|
||||
;;
|
||||
"ecran")
|
||||
if [[ ${1} == "faux" ]]; then
|
||||
echo "-display none \\" >> ${chemin_mv}
|
||||
fi
|
||||
;;
|
||||
"parametres")
|
||||
echo "$@ \\" >> ${chemin_mv}
|
||||
;;
|
||||
@@ -269,13 +292,13 @@ creeMV()
|
||||
# <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="faux"
|
||||
reseau_type="faux"
|
||||
reseau_activ_pont="faux"
|
||||
reseau_nom_pont="faux"
|
||||
reseau_activ_8021q="faux"
|
||||
reseau_mode_8021q="faux"
|
||||
reseau_vid="faux"
|
||||
|
||||
reseau_nom_interface=$( echo ${1} | awk -F: '{print $1}' )
|
||||
if [[ -z "${reseau_nom_interface}" ]]; then
|
||||
@@ -394,13 +417,65 @@ creeMV()
|
||||
fi
|
||||
;;
|
||||
"-k") # KVM
|
||||
echo "KVM"
|
||||
echo "KVM" # Debogage
|
||||
if [[ ${temoin_k} -ne 1 ]]; then
|
||||
commandes_a_executer+=( "nouvMV kvm")
|
||||
temoin_k=1
|
||||
else
|
||||
die "L'option ${1} a déjà été renseignée." 3
|
||||
fi
|
||||
;;
|
||||
"-s") # Séries
|
||||
echo "Séries" # Debogage
|
||||
if [[ ${temoin_s} -ne 1 ]]; then
|
||||
commandes_a_executer+=( "nouvMV series")
|
||||
temoin_s=1
|
||||
else
|
||||
die "L'option ${1} a déjà été renseignée." 3
|
||||
fi
|
||||
;;
|
||||
"-a") # Affichage
|
||||
echo "Affichage" # Debogage
|
||||
presenceParametre "$#" "$1"
|
||||
shift
|
||||
|
||||
# (gtk|(spice:(<adresse ecoute>|<chemin socket>):(<tcp port ecoute>|unix)[:<mot de passe>]))
|
||||
|
||||
affichage_protocole=$( echo ${1} | awk -F: '{print $1}' )
|
||||
if [[ -z "${affichage_protocole}" ]]; then
|
||||
die "Le protocole de gestion de l'affichage n'est pas renseigné.\nSyntaxe attendue : (gtk|(spice:(<adresse ecoute>|<chemin socket>):(<tcp port ecoute>|unix)[:<mot de passe>]))." 5
|
||||
fi
|
||||
case ${affichage_protocole} in
|
||||
"spice"|"SPICE")
|
||||
affichage_spice_adresse_unix=$( echo ${1} | awk -F: '{print $2}' )
|
||||
if [[ -z "${affichage_spice_adresse_unix}" ]]; then
|
||||
die "L'adresse IPv4 ou le chemin unix n'est pas renseigné.\nSyntaxe attendue : (gtk|(spice:(<adresse ecoute>|<chemin socket>):(<tcp port ecoute>|unix)[:<mot de passe>]))." 5
|
||||
fi
|
||||
|
||||
affichage_spice_port_unix=$( echo ${1} | awk -F: '{print $3}' )
|
||||
if [[ -z "${affichage_spice_port_unix}" ]]; then
|
||||
die "Le port ou le mot clé unix n'est pas renseigné.\nSyntaxe attendue : (gtk|(spice:(<adresse ecoute>|<chemin socket>):(<tcp port ecoute>|unix)[:<mot de passe>]))." 5
|
||||
fi
|
||||
|
||||
affichage_spice_activ_mot_de_passe="vrai"
|
||||
affichage_spice_mot_de_passe=$( echo ${1} | awk -F: '{print $4}' )
|
||||
if [[ -z "${affichage_spice_mot_de_passe}" ]]; then
|
||||
affichage_spice_activ_mot_de_passe="faux"
|
||||
fi
|
||||
|
||||
commandes_a_executer+=( "nouvMV spice ${affichage_spice_adresse_unix} ${affichage_spice_port_unix} ${affichage_spice_activ_mot_de_passe} ${affichage_spice_mot_de_passe}")
|
||||
;;
|
||||
"gtk"|"GTK")
|
||||
commandes_a_executer+=( "nouvMV gtk")
|
||||
;;
|
||||
"aucun"|"AUCUN")
|
||||
commandes_a_executer+=( "nouvMV ecran faux")
|
||||
;;
|
||||
*)
|
||||
die "${affichage_protocole} n'est pas une valeur connue.\nSyntaxe attendue : (gtk|((vnc|spice):<adresse ecoute>:<port ecoute>))." 5
|
||||
;;
|
||||
esac
|
||||
|
||||
;;
|
||||
# "-f") # Force
|
||||
# # Permet d'eviter la demande de confirmation de création
|
||||
@@ -443,8 +518,22 @@ creeMV()
|
||||
}
|
||||
|
||||
genCmdIntRzo(){
|
||||
# Création d'une interface simple
|
||||
if [[ "${pont_init}" -eq 1 && "${vlan_init}" -eq 2 && "${interface_init}" -eq 1 ]]; then
|
||||
# Commandes à executer au demarrage
|
||||
commandes_a_executer_on+=( "ip tuntap add ${interface} mode tap" )
|
||||
commandes_a_executer_on+=( "ip link set ${interface} up" )
|
||||
commandes_a_executer_on+=( "ip link set ${interface} master ${pont}" )
|
||||
# Commandes à exectuer à l'arrêt
|
||||
commandes_a_executer_off+=( "ip link del ${interface}" )
|
||||
|
||||
# Réinitialisation des variables témoins
|
||||
pont_init=0
|
||||
vlan_init=0
|
||||
interface_init=0
|
||||
|
||||
# Création d'une interface non étiqueté (access)
|
||||
if [[ "${pont_init}" -eq 1 && "${vlan_init}" -eq 1 && "${interface_init}" -eq 1 ]]; then
|
||||
elif [[ "${pont_init}" -eq 1 && "${vlan_init}" -eq 1 && "${interface_init}" -eq 1 ]]; then
|
||||
# Commandes à executer au demarrage
|
||||
commandes_a_executer_on+=( "ip tuntap add ${interface} mode tap" )
|
||||
commandes_a_executer_on+=( "ip link set ${interface} up" )
|
||||
@@ -460,7 +549,7 @@ genCmdIntRzo(){
|
||||
interface_init=0
|
||||
|
||||
# Création d'une interface étiqueté (trunk)
|
||||
elif [[ "${pont_init}" -eq 1 && "${ieee8021q_init}" -eq 1 && "${interface_init}" -eq 1 ]]; then
|
||||
elif [[ "${pont_init}" -eq 1 && "${ieee8021q_init}" -eq 1 && "${interface_init}" -eq 1 ]]; then
|
||||
commandes_a_executer_on+=( "ip tuntap add ${interface} mode tap" )
|
||||
commandes_a_executer_on+=( "ip link set ${interface} up" )
|
||||
commandes_a_executer_on+=( "ip link set ${interface} master ${pont}" )
|
||||
@@ -510,6 +599,8 @@ recupParams(){
|
||||
else
|
||||
die "Le paramètre \"#PONT=votrePont\" est manquant dans le fichier ${chemin_mv}." 9
|
||||
fi
|
||||
elif [[ "${val_param}" -eq 0 ]]; then
|
||||
vlan_init=2
|
||||
else
|
||||
die "Le VLAN \"${val_param}\" n'est pas un entier compris entre 1 et 4094. Veuillez verifier le fichier ${chemin_mv}." 9
|
||||
fi
|
||||
@@ -531,7 +622,7 @@ recupParams(){
|
||||
elif [ "${nom_param}" == "INTERFACE" ]; then
|
||||
if [[ ${verif_params} == "vrai" ]]; then
|
||||
if [[ ! $(ip link show "${val_param}" 2> /dev/null) ]]; then
|
||||
if [[ "${vlan_init}" -eq 1 || "${ieee8021q_init}" -eq 1 ]]; then
|
||||
if [[ "${vlan_init}" -eq 1 || "${vlan_init}" -eq 2 || "${ieee8021q_init}" -eq 1 ]]; then
|
||||
interface="${val_param}"
|
||||
interface_init=1
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user