Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 25/06/2013, à 23:49

silver74

[Besoin d'aide] Réalisation script config réseau serveur LTSP mobile.

Bonsoir,

je suis en train de créer un réseau formateurs bénévoles. Chaque formateur va recevoir un "kit" pour les formations, dans chaque kit il va avoir un ordinateur portable(serveur-LTSP)
(Intel Core i7/16go ram/DD SSD 300go),8 Raspberrys pi complet(écran/clavier/souris),switch,cables et piko-projecteur.

Comme chaque formateur change souvent des lieux, je voudrais trouver/créer un script avec zenity qui adapte la config réseau/serveur selon besoins.Je voudrais un truc qui change tout, d'un seul coup. Soit via des champs à saisir ou avec des boutons radio avec des choix des lieux. Puis selon choix le script pioche dans un fichier les infos.

Les fichiers à modifier chaque fois:
/etc/network/interfaces <---- config réseau
/etc/ltsp/dhcpd.conf <---- config du dhcp ltsp
/etc/resolvconf/resolv.conf.d/base <---- pour la dns
/var/lib/tftpboot/ltsp/i386/lts.conf <--- adresse ip du serveur ltsp

Pouvez vous m'aider?

Dernière modification par silver74 (Le 25/06/2013, à 23:51)


"Lorsque tu as découvert le libre, tu sais que tu ne pourras plus jamais revenir en arrière"

Hors ligne

#2 Le 26/06/2013, à 08:55

Bigcake

Re : [Besoin d'aide] Réalisation script config réseau serveur LTSP mobile.

Bonjour

Dans quel région lances-tu ton plan machiavélique ?

Pour ce qui est du script, ça peut pêtre extrêment simple a réaliser, d'après ce que tu décris je ferai un script qui aurai le plan suivant :
- Choix du lieu
- Remplacement des fichiers correspondant par les fichiers préconfigurés pour le lieu
On aurait donc dans un coin 4 fichiers préconfiguré pour chaque lieu :
interfaces.lieu1
dhcpd.lieu1
base.lieu1
lts.conf1
- Relance des services correspondant

La question est : est-ce que les données modifiés dans ces fichiers sont dynamique où sont bien déterminé par lieu ?

Dernière modification par Bigcake (Le 26/06/2013, à 10:52)


"Les gens" ne sont pas cons, ils ont été habitués à la facilité et à la désinformation. Le meilleur moyen de ne pas les aider, c'est de se moquer. Le meilleur moyen de les aider, c'est de les informer, encore et encore. La réflexion viendra. N'oubliez pas que vous aussi, vous êtes le con d'un autre.
Smartphone+GNU/Linux=Librem5

Hors ligne

#3 Le 27/06/2013, à 06:20

silver74

Re : [Besoin d'aide] Réalisation script config réseau serveur LTSP mobile.

En Poitou-Charente bien sur wink
Normalement, si tous va bien, tout commence en septembre.
Chaque formateur à son canton a lui,mais il peut intervenir sur un autre secteur selon compétences.
Donc il faut un truc déterminé par lieux, puis si il sort des lieux déterminé, un formulaire pour saisir les infos.
Comme je ne suis pas alaise avec bash je ne sais pas comment me prendre.
Je bien compris ta proposition, mais pour l'appliquer...

Je voudrais arriver faire un truc du genre:
----------------------------------------------------------------
|lieux01 | lieux02 | lieux03 | lieux04 | lieux05 |
----------------------------------------------------------------
|lieux06 | lieux07 | lieux08 | lieux09 | lieux10 |
----------------------------------------------------------------
|lieux11 | lieux12 | lieux13 | lieux14 | lieux15 |
----------------------------------------------------------------
| Formulaire manuelle:                                |
| ***.***.***.***                                            |
| ***.***.***.*** |***.***.***.***                        |


"Lorsque tu as découvert le libre, tu sais que tu ne pourras plus jamais revenir en arrière"

Hors ligne

#4 Le 11/07/2013, à 10:48

Bigcake

Re : [Besoin d'aide] Réalisation script config réseau serveur LTSP mobile.

Voici une petit ébauche de script qui pourrai te convenir :

Copie ce qui suis dans un fichier et ajoute lui les droits d'executions (chmod +x fichier)

Bon bien sur il faut que tu modifie le contenu des variables :
- liste_lieux, qui contient le nom des lieux (sans espace)
- dossier_source, qui contient les fichiers de configuration pour chaque lieux
Exemple : pour le premier lieu de ta liste, les fichiers devront s'appeler : interfaces.1, base.1, dhcpd.1, its.1

#!/bin/bash                                                                                                

# Variables à modifier                                                                                      
dossier_source=~/test
liste_lieux="lieu01 lieu02 lieu03 manuel" # laisser 'manuel' à la fin                                       

# Choix du lieu                                                                                             
echo "********** Choix du lieu ************"
nb=1
for lieu in $liste_lieux
do
    if [[ $lieu = "manuel" ]] ; then
        echo "$nb) Configuration manuelle"
    else
        echo "$nb) $lieu"
    fi
    let nb++
done
let nb--

while true; do
    read -p "Quel est votre lieu ? " ans
    case $ans in
        [1-9]* )
            if [[ $ans > $nb ]] ; then
                echo "Choix incorrect (doit être inférieur ou égal à $nb)"
                continue
            fi
            break;;
        * ) echo "Réponse possible : 1 à $nb";;
    esac
done

# Remplacement des fichiers                                                                                 
if [[ $nb = $ans ]] ; then
    echo -e "\n************ Saisie manuelle *************"
    read -p "Adresse IP : " ip
    read -p "Autre paramètre : " param

    # Modifs a faire dans les fichiers                                                                      
else
    cp $dossier_source/interfaces.$ans /etc/network/interfaces
    cp $dossier_source/dhcpd.$ans /etc/ltsp/dhcpd.conf
    cp $dossier_source/base.$ans /etc/resolvconf/resolv.conf.d/base
    cp $dossier_source/lts.$ans /var/lib/tftpboot/ltsp/i386/lts.conf
fi

# Relance des services                                                                                      
## Quels services à relancer ? 

Dernière modification par Bigcake (Le 11/07/2013, à 14:58)


"Les gens" ne sont pas cons, ils ont été habitués à la facilité et à la désinformation. Le meilleur moyen de ne pas les aider, c'est de se moquer. Le meilleur moyen de les aider, c'est de les informer, encore et encore. La réflexion viendra. N'oubliez pas que vous aussi, vous êtes le con d'un autre.
Smartphone+GNU/Linux=Librem5

Hors ligne

#5 Le 11/07/2013, à 19:18

sleduc

Re : [Besoin d'aide] Réalisation script config réseau serveur LTSP mobile.

Bonsoir Bigcake,
Je viens de tester ton script celui-ci ne marche pas,

<code>
[[: not found
let: not found
</code>

La première erreur est corrigé : ce n'est pas des double crochet mais des simples qu'il faut mettre.
La seconde est bizarre car la fonction let (j'ai regarder sur internet à quoi cela correspondait, car je ne connaissait pas), ne semple pas reconnu par Bash.

Je tourne sur Ubuntu 13.10.

Je vais voir pour créer un script Bash utilisant Zenity pour votre besoin, travaillant cette nuit, celui-ci sera finit dans la journée.

Je pense partir sur une liste avec une selection unique par bouton à cliquer Lieu1, Lieu2, LieuX et Autre.
Si Autre demande les informations en mode manuelle sinon on copie la configuration.

Dernière modification par sleduc (Le 11/07/2013, à 19:28)

Hors ligne

#6 Le 11/07/2013, à 19:38

Bigcake

Re : [Besoin d'aide] Réalisation script config réseau serveur LTSP mobile.

mmm y a un bug de ton coté
Suite a tes remarques,  j'ai testé le script sur du debian 6, fedora18, kubuntu12.04, opensuse12, le script fontionne très bien sur toute ces distributions.
infos sur le [[ : http://mywiki.wooledge.org/BashFAQ/031
infos sur let : http://linux.about.com/od/Bash_Scriptin … n-Bash.htm

Après le script est loin d'être finit....

Dernière modification par Bigcake (Le 11/07/2013, à 19:43)


"Les gens" ne sont pas cons, ils ont été habitués à la facilité et à la désinformation. Le meilleur moyen de ne pas les aider, c'est de se moquer. Le meilleur moyen de les aider, c'est de les informer, encore et encore. La réflexion viendra. N'oubliez pas que vous aussi, vous êtes le con d'un autre.
Smartphone+GNU/Linux=Librem5

Hors ligne

#7 Le 13/07/2013, à 08:20

sleduc

Re : [Besoin d'aide] Réalisation script config réseau serveur LTSP mobile.

Bonjour,
Je suis actuellement entrain d'écrire le script à l'aide de Bash et Zenity.

Voila où cela en est:

Demande du lieu via une liste avec description
Lieu1 Commune de ...
Lieu2 Commune de ...
...
Autre Définir les paramètres manuellement

Ensuite un case définit quelle fonction doit être lancé config_lieu ou config_manuelle

case $lieu in
		Lieu*) config_lieu ;;
		Autre) config_manuelle ;;
esac

La fonction config_lieu et config_manuelle

config_lieu() {
	# $lieu contient le lien où l'on se trouve
	cp /usr/local/share/ltsp-config/$lieu/interfaces /etc/network/
	cp /usr/local/share/ltsp-config/$lieu/dhcpd.conf /etc/ltsp/
	cp /usr/local/share/ltsp-config/$lieu/base /etc/resolvconf/resolv.conf.d/
	cp /usr/local/share/ltsp-config/$lieu/lts.conf /var/lib/tftpboot/ltsp/i386/
	echo "reconfiguration du serveur"
}

config_manuelle() {
	echo "config manuelle"
}

Hors ligne

#8 Le 15/07/2013, à 11:47

sleduc

Re : [Besoin d'aide] Réalisation script config réseau serveur LTSP mobile.

Bonjour,
Je viens montrer l'état d'avancement du script.

Voici le code complet, il me reste la partie configuration manuelle à coder mais la partie configuration automatique par lieu devrait être fonctionnelle.

#!/bin/bash
#
# Script de configuration du serveur pour les formateurs itinérant.
# rev: 0.01
# Auteur: Stanislas Leduc

#----------------------------------------------------------------------
# Information sur le script
zenity --info \
  --title="Information" \
  --text="Ce programme va vous aider à configurer votre réseau et le serveur LTSP\n pour le lieu où vous vous trouver.\n\n" 
#-----------------------------------------------------------------------

#-----------------------------------------------------------------------
# On demande dans quel lieu on se trouve
lieu=`zenity --list \
  --title="Lieu de formation" \
  --text="Veuillez indiquer dans quel lieu vous trouvez vous." \
  --column="Lieu" --column="Description" \
    Lieu1 "Commune de ..." \
    Lieu2 "Commune de ..." \
    Lieu3 "Commune de ..." \
    Lieu4 "Commune de ..." \
    Autre "Définir les paramètres manuellement"`
#-----------------------------------------------------------------------

#-----------------------------------------------------------------------
# On créer la fonction qui va configurer le réseau et le serveur.
config_lieu() {
	# $lieu contient le lien où l'on se trouve
	cp /usr/local/share/ltsp-config/$lieu/interfaces /etc/network/
	cp /usr/local/share/ltsp-config/$lieu/dhcpd.conf /etc/ltsp/
	cp /usr/local/share/ltsp-config/$lieu/base /etc/resolvconf/resolv.conf.d/
	cp /usr/local/share/ltsp-config/$lieu/lts.conf /var/lib/tftpboot/ltsp/i386/
	echo "reconfiguration du serveur"
	service networking restart
	/etc/init.d/isc-dhcp-server restart
}

config_manuelle() {
	echo "config manuelle"
	# intéraction avec l'utilisateur pour configurer les fichiers
	# adresse ip, masque, passerelle, ... (fichier interfaces)
	# plage ip, masque, route, passerelle, ... (fichier dhcpd)
	# adresse dns (fichier base)
	# paramètre ltsp tftpboot (fichier lts.conf)
}
#-----------------------------------------------------------------------

#-----------------------------------------------------------------------
# On utilise la fonction case pour la configuration du lieu.
case $lieu in
		Lieu*) config_lieu ;;
		Autre) config_manuelle ;;
esac

Hors ligne