Compare commits

...

3 Commits

Author SHA1 Message Date
Nicolas MORIN 9b1030bf45 Ajout de la gestion des interfaces réseaux dans un pont simple
11 months ago
Nicolas MORIN 7c91541a83 Changement de lettre pour l'option sous-volume
11 months ago
Nicolas MORIN 896c471be7 Désactivation de l'option -p
11 months ago

@ -84,8 +84,11 @@ nouvMV()
echo "-cdrom ${1} \\" >> ${chemin_mv} echo "-cdrom ${1} \\" >> ${chemin_mv}
;; ;;
"reseau") "reseau")
if [[ "${4}" != "false" ]]; then if [[ "${4}" != "faux" ]]; then
echo "#PONT=${4}" >> ${chemin_mv} echo "#PONT=${4}" >> ${chemin_mv}
if [[ "${5}" == "n" ]]; then
echo "#VLAN=0" >> ${chemin_mv}
fi
fi fi
case "${6}" in case "${6}" in
"a") "a")
@ -95,13 +98,33 @@ nouvMV()
echo "#8021Q=${7}" >> ${chemin_mv} echo "#8021Q=${7}" >> ${chemin_mv}
;; ;;
esac esac
if [[ "${4}" != "faux" ]]; then
echo "#INTERFACE=${1}" >> ${chemin_mv} echo "#INTERFACE=${1}" >> ${chemin_mv}
fi
echo "-device ${2},netdev=${1} -netdev tap,id=${1},ifname=${1},script=no,downscript=no \\" >> ${chemin_mv} echo "-device ${2},netdev=${1} -netdev tap,id=${1},ifname=${1},script=no,downscript=no \\" >> ${chemin_mv}
;; ;;
"kvm") "kvm")
echo "-enable-kvm \\" >> ${chemin_mv} 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") "parametres")
echo "$@ \\" >> ${chemin_mv} echo "$@ \\" >> ${chemin_mv}
;; ;;
@ -269,13 +292,13 @@ creeMV()
# <nom interface>:(virtio|e1000):(n|o:<nom pont>:(n|o:(t:<VIDs>|a:<VID>))) # <nom interface>:(virtio|e1000):(n|o:<nom pont>:(n|o:(t:<VIDs>|a:<VID>)))
# Initialisation des variables # Initialisation des variables
reseau_nom_interface=false reseau_nom_interface="faux"
reseau_type=false reseau_type="faux"
reseau_activ_pont=false reseau_activ_pont="faux"
reseau_nom_pont=false reseau_nom_pont="faux"
reseau_activ_8021q=false reseau_activ_8021q="faux"
reseau_mode_8021q=false reseau_mode_8021q="faux"
reseau_vid=false reseau_vid="faux"
reseau_nom_interface=$( echo ${1} | awk -F: '{print $1}' ) reseau_nom_interface=$( echo ${1} | awk -F: '{print $1}' )
if [[ -z "${reseau_nom_interface}" ]]; then if [[ -z "${reseau_nom_interface}" ]]; then
@ -368,18 +391,18 @@ creeMV()
commandes_a_executer+=( "nouvMV reseau ${reseau_nom_interface} ${reseau_type} ${reseau_activ_pont} ${reseau_nom_pont} ${reseau_activ_8021q} ${reseau_mode_8021q} ${reseau_vid}") 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 echo "nouvMV reseau ${reseau_nom_interface} ${reseau_type} ${reseau_activ_pont} ${reseau_nom_pont} ${reseau_activ_8021q} ${reseau_mode_8021q} ${reseau_vid}" # Debogage
;; ;;
"-p") # VFIO PCI # "-p") # VFIO PCI
echo "pci" # Debogage # echo "pci" # Debogage
# -device vfio-pci,host=0b:10.0,id=hostdev0,bus=pci.0,addr=0xa # # -device vfio-pci,host=0b:10.0,id=hostdev0,bus=pci.0,addr=0xa
shift # shift
;; # ;;
"-s") # Sous-volume "-S") # Sous-volume
echo "sous-volume" # Debogage echo "sous-volume" # Debogage
parametre="${2}" parametre="${2}"
echo "sous-volume parametre=${parametre}" # Debogage echo "sous-volume parametre=${parametre}" # Debogage
presenceParametre "$#" "$1" presenceParametre "$#" "$1"
shift shift
if [[ ${temoin_s} -ne 1 ]]; then if [[ ${temoin_S} -ne 1 ]]; then
case ${1} in case ${1} in
"btrfs"|"BTRFS") "btrfs"|"BTRFS")
if [[ ! $(command -v btrfs) ]]; then if [[ ! $(command -v btrfs) ]]; then
@ -388,19 +411,71 @@ creeMV()
commandes_init_a_executer+=( "initEnv sousvolume ${1}" ) commandes_init_a_executer+=( "initEnv sousvolume ${1}" )
;; ;;
esac esac
temoin_s=1 temoin_S=1
else else
die "L'option ${1} a déjà été renseignée." 3 die "L'option ${1} a déjà été renseignée." 3
fi fi
;; ;;
"-k") # KVM "-k") # KVM
echo "KVM" echo "KVM" # Debogage
if [[ ${temoin_k} -ne 1 ]]; then if [[ ${temoin_k} -ne 1 ]]; then
commandes_a_executer+=( "nouvMV kvm") commandes_a_executer+=( "nouvMV kvm")
temoin_k=1 temoin_k=1
else else
die "L'option ${1} a déjà été renseignée." 3 die "L'option ${1} a déjà été renseignée." 3
fi 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 # "-f") # Force
# # Permet d'eviter la demande de confirmation de création # # Permet d'eviter la demande de confirmation de création
@ -443,8 +518,22 @@ creeMV()
} }
genCmdIntRzo(){ 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) # 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 à executer au demarrage
commandes_a_executer_on+=( "ip tuntap add ${interface} mode tap" ) 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} up" )
@ -510,6 +599,8 @@ recupParams(){
else else
die "Le paramètre \"#PONT=votrePont\" est manquant dans le fichier ${chemin_mv}." 9 die "Le paramètre \"#PONT=votrePont\" est manquant dans le fichier ${chemin_mv}." 9
fi fi
elif [[ "${val_param}" -eq 0 ]]; then
vlan_init=2
else else
die "Le VLAN \"${val_param}\" n'est pas un entier compris entre 1 et 4094. Veuillez verifier le fichier ${chemin_mv}." 9 die "Le VLAN \"${val_param}\" n'est pas un entier compris entre 1 et 4094. Veuillez verifier le fichier ${chemin_mv}." 9
fi fi
@ -531,7 +622,7 @@ recupParams(){
elif [ "${nom_param}" == "INTERFACE" ]; then elif [ "${nom_param}" == "INTERFACE" ]; then
if [[ ${verif_params} == "vrai" ]]; then if [[ ${verif_params} == "vrai" ]]; then
if [[ ! $(ip link show "${val_param}" 2> /dev/null) ]]; 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="${val_param}"
interface_init=1 interface_init=1
else else

Loading…
Cancel
Save