Contenu | Rechercher | Menus

Annonce

DVD, clés USB et t-shirts Ubuntu-fr disponibles sur la boutique En Vente Libre

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.

#26 Le 12/01/2009, à 20:10

Sagittarus

Re : Installation automatisée de (U|Ku|Xu)buntu en réseau avec Kickstart

Il va donc falloir trouver un autre moyen...

oki, à l'arrache comme au bon vieux temps (ça me rappelle des souvenirs lol )
=> export un dans fichier formatté variable + séparateur + valeur


E PLURIBUS UNUM
3 postes Ubuntu / 1 poste XP / 1 serveur Debian / et un portable XP-Ubuntu

Hors ligne

#27 Le 12/01/2009, à 22:08

Sagittarus

Re : Installation automatisée de (U|Ku|Xu)buntu en réseau avec Kickstart

Un petit lien pour préciser l'idée du fichier => fichier lu en tableau puis utilisation des variables du tableau.


E PLURIBUS UNUM
3 postes Ubuntu / 1 poste XP / 1 serveur Debian / et un portable XP-Ubuntu

Hors ligne

#28 Le 12/01/2009, à 22:18

Sagittarus

Re : Installation automatisée de (U|Ku|Xu)buntu en réseau avec Kickstart

m2nis,

pourriez vous expliquer %pre et %post
attention je mets en exergue un "niveau script" proche du zéro absolu smile
ça appelle un fichier "pre" puis "post" dans un autre shell ?


E PLURIBUS UNUM
3 postes Ubuntu / 1 poste XP / 1 serveur Debian / et un portable XP-Ubuntu

Hors ligne

#29 Le 12/01/2009, à 23:06

Sagittarus

Re : Installation automatisée de (U|Ku|Xu)buntu en réseau avec Kickstart

bon ok,
je me réponds tout seul
commandes %package %pre %post sont des sections propre à KickStart

La suite :
j'ai lu que le shell de %post pouvait être spécifié...
ne pourrait-on rester dans le même shell (en utilisant des accollades) afin de supprimer votre problème de variables ?


E PLURIBUS UNUM
3 postes Ubuntu / 1 poste XP / 1 serveur Debian / et un portable XP-Ubuntu

Hors ligne

#30 Le 13/01/2009, à 08:57

m2nis

Re : Installation automatisée de (U|Ku|Xu)buntu en réseau avec Kickstart

Sagittarus a écrit :

j'ai lu que le shell de %post pouvait être spécifié...
ne pourrait-on rester dans le même shell (en utilisant des accollades) afin de supprimer votre problème de variables ?

D'après ce que j'ai trouvé (et posté hier à 18:40), ce n'est pas possible. En revanche, c'est moins "propre", mais rien ne devrait empêcher de répéter les traitements sur variables tels qu'ils sont faits dans %pre.

Par exemple,

if [ -z "$utilisateur" ]; then
    utilisateur="Utilisateur_par_defaut"
fi

peut être répété dans %post. C'est dommage, mais ça devrait fonctionner. Mais est-ce plus ou moins simple que de créer un fichier que l'on va lire ensuite (le lien que vous avez donné ne fonctionne pas à l'heure qu'il est) ?


Michaël.

Hors ligne

#31 Le 13/01/2009, à 09:09

Sagittarus

Re : Installation automatisée de (U|Ku|Xu)buntu en réseau avec Kickstart

bonjour,
j'ai testé kickstart avec un relatif succès hier, via un cédérom Ubuntu 8.04, relatif car sans faire des choses compliquées.
Cependant je suis dans l'impasse si je souhaite utiliser un cédérom Debian.
Quelqu'un aurait-il une explication ? ou un bout de syntaxe wink

Pour info, contexte d'installation pour Ubuntu
Ubuntu 8.04 (LTS donc)
VirtualBox
ks.cfg posé sur http://<ip>/


E PLURIBUS UNUM
3 postes Ubuntu / 1 poste XP / 1 serveur Debian / et un portable XP-Ubuntu

Hors ligne

#32 Le 13/01/2009, à 19:28

Sagittarus

Re : Installation automatisée de (U|Ku|Xu)buntu en réseau avec Kickstart

pour le lien, bizarre, moi ça fonctionne :
http://abs.traduc.org/abs-5.1-fr/ch26.html

D'après ce que j'ai trouvé (et posté hier à 18:40), ce n'est pas possible.

je vais tester cela ce soir

Su vous aviez un retour pour utiliser ks avec distrib debian je suis preneur, la syntaxe doit être différente je m'y suis cassé le nez hier jusqu'à 01h30 du mat' sans succès. De quoi passer la nuit énervé !!!


E PLURIBUS UNUM
3 postes Ubuntu / 1 poste XP / 1 serveur Debian / et un portable XP-Ubuntu

Hors ligne

#33 Le 13/01/2009, à 23:01

Sagittarus

Re : Installation automatisée de (U|Ku|Xu)buntu en réseau avec Kickstart

bon fait chit, je lâche l'affaire avec kickStart-Debian mad
je déterre preseed... hmm


E PLURIBUS UNUM
3 postes Ubuntu / 1 poste XP / 1 serveur Debian / et un portable XP-Ubuntu

Hors ligne

#34 Le 16/01/2009, à 08:36

m2nis

Re : Installation automatisée de (U|Ku|Xu)buntu en réseau avec Kickstart

Sagittarus a écrit :

pour le lien, bizarre, moi ça fonctionne :

Moi aussi ce matin...

Sagittarus a écrit :

Su vous aviez un retour pour utiliser ks avec distrib debian je suis preneur, la syntaxe doit être différente je m'y suis cassé le nez hier jusqu'à 01h30 du mat' sans succès.

Je n'ai jamais fait. Désolé.


Michaël.

Hors ligne

#35 Le 14/05/2009, à 10:56

jakatak

Re : Installation automatisée de (U|Ku|Xu)buntu en réseau avec Kickstart

Bonjour,

Je viens de lire ce sujet avec beaucoup d'attention, merci d'avoir noté toutes ces démarches.

Je travaille actuellement sur la 9.04, pour une installation à base de fichier ks et de scripts de post-installation.
Ces fichiers (ks, scripts ...)sont déposés sur un serveur web.

Je dois définir le type de machine (pour le hardware j'utilise hwinfo), et le contexte (machine libre-service, poste personnel ...).
J'utilise aussi les données réseaux (IP, nom de domaine, ...), authentification sur un annuaire ldap.

Actuellement je cherche à pouvoir rendre intéractif debconf à la fin de l'installation.
J'utilise dans un script de post-conf :


export DEBIAN_FRONTEND=dialog
#!/bin/bash
#---------------------
# Fichier : pi-test.sh
echo "---> Mais qui êtes-vous ?"
echo "Entrez votre uid s'il vous plaît ?"
read uid
echo " Votre uid est : $uid"
export DEBIAN_FRONTEND=noninteractive

Mais dans l'écran principal debconf (busybox) il ne se passe rien, si je vais sur le syslog (ctrl F4), j'ai le script qui c'est bien exécuté mais qui est non-intéractif, donc sans effet.

Je vais aussi creuser la piste expliquée ici d'un script au premier logon d'une personne ...

Dernière modification par jakatak (Le 14/05/2009, à 10:57)

Hors ligne

#36 Le 16/06/2009, à 17:45

jakatak

Re : Installation automatisée de (U|Ku|Xu)buntu en réseau avec Kickstart

Bonjour,

Je me réponds à moi-même, ce n'est pas possible de rendre interractif à ce moment là.

Hors ligne

#37 Le 16/06/2009, à 18:03

m2nis

Re : Installation automatisée de (U|Ku|Xu)buntu en réseau avec Kickstart

jakatak a écrit :

Je me réponds à moi-même, ce n'est pas possible de rendre interractif à ce moment là.

Tiens ! Je n'avais pas fait bien attention à la question.

Je n'ai pas non plus réussi à utiliser la commande "read" dans le script.


Michaël.

Hors ligne

#38 Le 19/05/2010, à 15:35

chicanosddb

Re : Installation automatisée de (U|Ku|Xu)buntu en réseau avec Kickstart

Bonjour à tous,

Je déterre ce sujet pour un petit besoin d'aide. Vu ce que vous êtes arrivé à faire, mon problème ne va pas vous paraitre compliqué..

En fait, je n'ai pas (encore) de soucis avec la conf du fichier kickstart, mais plutôt avec son chargement.. qui ne se fait pas !

Je penses pourtant (à force de chercher) avoir la bonne config, j'ai essayer plusieurs choses, le passer en HTTP, en ftp, nfs.. dans tout les cas il ne se passe rien.
Le reste est Ok, le boot se fait, affiche un menu, puis lance mon install.

Voici à quoi ressemble mon fichier pxelinux.cfg/default :

DEFAULT menu.c32
MENU MARGIN 0
MENU ROWS -9
MENU TABMSG
MENU TABMSGROW -3
MENU CMDLINEROW -3
MENU HELPMSGROW -4
MENU HELPMSGENDROW -1
MENU COLOR SCREEN 30;47
MENU COLOR BORDER 30;47
MENU COLOR TITLE 30;47
MENU COLOR SCROLLBAR 30;47
MENU COLOR SEL 37;40
MENU COLOR UNSEL 30;47
MENU COLOR CMDMARK 30;47
MENU COLOR CMDLINE 30;47
MENU COLOR TABMSG 37;40
MENU COLOR DISABLED 37;40
MENU COLOR HELP 37;40
MENU TITLE Serveur de deploiement


LABEL Ubuntu
KERNEL ubuntu/casper/vmlinuz
APPEND boot=casper only-ubiquity netboot=nfs nfsroot=10.1.10.1:/var/lib/tftpboot/ubuntu initrd=ubuntu/casper/initrd.lz ks=http://10.1.10.1/ks.cfg --

LABEL Memtest
KERNEL memtest.gz



Via un navigateur web, j'arrive bien à lire le fichier ks.cfg.

Est ce que l'un d'entre vous aurait une idée ?

Merci à tous.

Dernière modification par chicanosddb (Le 19/05/2010, à 15:36)

Hors ligne

#39 Le 19/05/2010, à 16:36

m2nis

Re : Installation automatisée de (U|Ku|Xu)buntu en réseau avec Kickstart

chicanosddb a écrit :

ks=http://10.1.10.1/ks.cfg

Je n'ai pour l'instant pas ma machine sous la main, mais si vous parvenez à lire http://10.1.10.1/ks.cfg depuis une autre machine, il me semble que cela devrait pourtant fonctionner...


Michaël.

Hors ligne

#40 Le 19/05/2010, à 17:04

chicanosddb

Re : Installation automatisée de (U|Ku|Xu)buntu en réseau avec Kickstart

C'est effectivement une bonne remarque, car le fichier ks est accessible depuis le même poste, via firefox en tapant http://10.1.10.1/ks.cfg
Je viens de tester en connectant un autre poste disposant d'un O.S type Windows, le dhcp lui attribue bien une IP et un masque, mais via Firefox ou IE, impossible d'atteindre ce fichier.
Je vais regarder niveau du fichier de conf d'Apache, ou des droits du fichier peut être.. Merci en tout cas.

Hors ligne

#41 Le 19/05/2010, à 17:22

chicanosddb

Re : Installation automatisée de (U|Ku|Xu)buntu en réseau avec Kickstart

Bon désolé, je reviens sur ce que j'ai dis.
J'ai fais le test avec un autre poste sous ubuntu (session live) et ca fonctionne, j'arrive a voir le fichier ks..
Cela devait être le poste sous XP, il avait un pare-feu logiciel je crois.

Bref, je reviens au premier problème sad

Hors ligne

#42 Le 20/05/2010, à 08:10

m2nis

Re : Installation automatisée de (U|Ku|Xu)buntu en réseau avec Kickstart

Je vais essayer de me pencher un peu sur la question pour voir si quelque chose me saute aux yeux.

En attendant, je me rends compte que je n'ai jamais posté tout mon script après les nombreuses corrections et améliorations qu'il a subit. Cela ne répondra pas à votre question, mais cela en aidera peut-être certain. Bien évidemment, l'ensemble est à adapter aux besoins de chacun. Notez enfin que ce script fonctionne très bien avec la 8.04 LTS mais n'a pas encore été testé du tout avec la 10.04 LTS. Bien évidemment, je suis preneur de toute remarque d'amélioration.

Bonne lecture pour ceux qui auront le courage. :-)

# Script Kickstart pour installation automatisée
# de (U|Xu|Ku)buntu par le réseau
# Testé avec la version 8.04 LTS x86 uniquement
#
# Options d'appel :
#  machine=nom_de_machine (obligatoire)
#    abandon de l'installation si non fourni
#  utilisateur=nom_d_utilisateur (facultatif)
#    = "Utilisateur_par_defaut" si non fourni
#  login=login_utilisateur (facultatif)
#    = $machine si non fourni
#  mdp=mot_de_passe_utilisateur (facultatif)
#    = "temp" si non fourni
#  mdp_vino=mot_de_passe_prise_de_controle (facultatif)
#    = $mdp si non fourni
#  distrib=[ubuntu|xubuntu] (facultatif)
#    = "ubuntu" si non fourni
#  reboot=oui (facultatif)
#    redémarrage en fin d'installation si fourni

# Langue à utiliser pour l'installation et le système
lang fr_FR

# Modules de langue à installer
langsupport fr_FR

# Clavier
keyboard fr_oss

# Souris
mouse

# Fuseau horaire
timezone --utc Europe/Paris

# Mot de passe Root (pas de mot de passe pour root par défaut sous Ubuntu)
rootpw --disabled

# Utilisateur de départ - config en section %pre
%include /tmp/user_conf

# Redémarrage après installation si demandé - config en section pre%
%include /tmp/reboot_conf

# Installation en mode texte
text

# Installation de l'OS plutôt que mise à jour
install

# Adresse du dépot local pour installation par le réseau
url --url http://mon_serveur_local/ubuntu/

# Configuration du chargeur de démarrage
bootloader --location=mbr

# Destruction des tables de partitions invalides
zerombr yes

# Suppression des partitions du système
clearpart --all --initlabel

# Définition des partitions (pas de partition /home séparée)
part swap --size 1024 --fstype swap --asprimary
part / --size 1024 --fstype ext3 --asprimary --grow

# Définition des options d'authentification pour le système
auth  --useshadow  --enablemd5

# Configuration du réseau - config en section pre%
%include /tmp/network_conf

# Configuration du pare-feu
firewall --disabled

# Ne pas configurer X pour le système
skipx

# Configuration du système X Window
# Ne fonctionne pas - Xfce uniquement ?
#xconfig --depth=32 --resolution=1280x1024 --defaultdesktop=XFCE --startxonboot

# Acceptation de la license Java
preseed --owner sun-java6-bin shared/accepted-sun-dlj-v1-1 boolean true

# Installation des paquets supplémentaires - config en section pre%
%packages --resolvedeps
%include /tmp/paquets_conf

%pre

# Lecture et mise en variables des paramètres d'installation 
set -- `cat /proc/cmdline`
for I in $*; do case "$I" in *=*) eval $I;; esac; done

if [ -z "$machine" ]; then
	echo "Variable 'machine' non renseignée !"
	echo "Abandon de l'installation !"
	echo "Redémarrage dans 5 secondes !"
	sleep 5
	reboot
fi

if [ -z "$utilisateur" ]; then
	utilisateur="Utilisateur_par_defaut"
fi

if [ -z "$login" ]; then
	login=$machine
fi

if [ -z "$mdp" ]; then
	mdp="temp"
fi

if [ -z "$mdp_vino" ]; then
	mdp_vino=$mdp
fi

if [ "$distrib" != "xubuntu" ]; then
	distrib="ubuntu"
fi

if [ "$reboot" != "oui" ]; then
	reboot="non"
fi

echo "-------------------------------------------------"
echo "              Résumé d\'installation"
echo "-------------------------------------------------"
echo " "
echo " "
echo "-------------------------------------------------"
echo "    Nom de la machine     = $machine"
echo "    Nom de l\'utilisateur  = $utilisateur"
echo "    Login                 = $login"
echo "    Mot de passe          = $mdp"
echo "    Mot de passe Vino     = $mdp_vino"
echo "    Distribution          = $distrib"
echo "    Reboot après install. = $reboot"
echo "-------------------------------------------------"
echo " "
echo " "
echo "-------------------------------------------------"
echo "    L\'installation écrasera irrémédiablement"
echo "    toutes les données du disque !"
echo " "
echo "    Redémarrer la machine avant 30 secondes"
echo "    pour annuler l'installation !"
echo "--------------------------------------------------"
echo " "
echo " "
echo " "
sleep 30

# Préparation de la configuration réseau
# paramètre '--hostname=" ne fonctionne pas
echo "network --bootproto dhcp --device=eth0" > /tmp/network_conf

# Configuration de l'utilisateur
echo "user $login --fullname $utilisateur --password $mdp" > /tmp/user_conf

# Configuration des paquets à installer
if [ "$distrib" == "xubuntu" ]; then
	cat > /tmp/paquets_conf << eof
		xubuntu-desktop
		evince
		mailx
		#msttcorefonts
		ntp
		numlockx
		ocsinventory-agent
		openoffice.org
		openoffice.org-gtk
		smbfs
		ssh
		ssmtp
		sun-java6-plugin
		vino
	eof
else
	cat > /tmp/paquets_conf << eof
		ubuntu-desktop
		mailx
		#msttcorefonts
		ntp
		ocsinventory-agent
		smbfs
		ssh
		ssmtp
		sun-java6-plugin
		thunderbird
	eof
fi

# Gestion du reboot si demandé
if [ "$reboot" == "oui" ]; then
	echo "reboot" > /tmp/reboot_conf
fi

# Configuration de ssmtp (envoi des mails system via "mon_serveur_de_mail")
cat > /tmp/ssmtp_conf << eof
	root=admin@mon_domaine.com
	mailhub=mon_serveur_de_mail
	rewriteDomain=mon_domaine.com
	hostname=$machine
	FromLineOverride=YES
eof
cat > /tmp/ssmtp_alias << eof
	root:$machine@mon_domaine.com:mon_serveur_de_mail
	admin:$machine@mon_domaine.com:mon_serveur_de_mail
	$machine:$machine@mon_domaine.com:mon_serveur_de_mail
eof

%post --nochroot

# Reprise de la définition des variables non renseignées
# car non conservées
if [ -z "$utilisateur" ]; then
	utilisateur="Utilisateur_par_defaut"
fi

if [ -z "$login" ]; then
	login=$machine
fi

if [ -z "$mdp" ]; then
	mdp="temp"
fi

if [ -z "$mdp_vino" ]; then
	mdp_vino=$mdp
fi

if [ "$distrib" != "xubuntu" ]; then
	distrib="ubuntu"
fi

if [ "$reboot" != "oui" ]; then
	reboot="non"
fi

# Changement de serveur du temps (selon nom de la machine)
case "$machine" in
t1* | t2*)
	sed -i 's/server ntp.ubuntu.com/server mon_serveur_temps_local/g' /target/etc/ntp.conf
	;;
esac

# Changement du port ssh
sed -i 's/Port 22/Port 1234/g' /target/etc/ssh/sshd_config

# Mise en place de l'auto-login
chroot /target sed -i "/\\\\[daemon\\\\]/a\\\\\\\\\\\\\\\\nAutomaticLoginEnable=true\\\\n\\\\nAutomaticLogin=$login" /etc/gdm/gdm.conf-custom

# Mise en place des fichiers de configuration de ssmtp
mv /tmp/ssmtp_conf /target/etc/ssmtp/ssmtp.conf
mv /tmp/ssmtp_alias /target/etc/ssmtp/revaliases

# Suppression des paquets non souhaités
if [ "$distrib" == "xubuntu" ]; then
	chroot /target apt-get -y remove abiword-common
	chroot /target apt-get -y remove gnome-games-data
	chroot /target apt-get -y remove gnumeric-common
	chroot /target apt-get -y remove pidgin
	chroot /target apt-get -y remove transmission-common
else
	chroot /target apt-get -y remove gnome-games-data
	chroot /target apt-get -y remove pidgin
	chroot /target apt-get -y remove transmission-common
fi

# Modification des dépots
# suppression des dépots de sources
sed -i 's/deb-src/#deb-src/g' /target/etc/apt/sources.list
case "$machine" in
t1* | t2*)
	# passage des dépots sécurité sur mon_serveur_local
	sed -i 's/security.ubuntu.com/mon_serveur_local/g' /target/etc/apt/sources.list
	;;
*)
	# passage des dépots sur ubuntu
	sed -i 's/mon_serveur_local/fr.archive.ubuntu.com/g' /target/etc/apt/sources.list
	;;
esac
# ajout d'un dépot supplémentaire
case "$machine" in
t1* | t2* | t3*)
	echo 'deb http://mon_serveur_local/mon_programme/ ./' >> /target/etc/apt/sources.list
esac

#----------------------------------------------
# Préparation des scripts de fin d'installation
# Ces scripts seront exécutés au premier
# redémarrage de la machine
# fin_install_root appelle fin_install_user
#----------------------------------------------
# Création du fichier 'user'
if [ "$distrib" == "xubuntu" ]; then
	cat > /target/usr/bin/fin_install_user << eof
	#!/bin/bash
	# Configuration de la mise en veille à 5 minutes
	gconftool-2 -s -t int /apps/gnome-screensaver/idle_delay 5
	# Configuration de Vino
	# La définition du mot de passe doit s'effectuer
	# avant l'autorisation de prise de controle
	gconftool-2 -s -t string /desktop/gnome/remote_access/vnc_password $(echo -n $mdp_vino | base64)
	gconftool-2 -s -t list --list-type string /desktop/gnome/remote_access/authentication_methods '[vnc]'
	gconftool-2 -s -t bool /desktop/gnome/remote_access/prompt_enabled false 
	gconftool-2 -s -t bool /desktop/gnome/remote_access/enabled true
	#
	# Création du fichier de lancement de Vino
	mkdir /home/$login/.config
	mkdir /home/$login/.config/autostart
	cat > /home/$login/.config/autostart/Vino.desktop << eof
	[Desktop Entry]
	Encoding=UTF-8
	Version=0.9.4
	Type=Application
	Name=Vino
	Comment=Vnc Server
	Exec=/usr/lib/vino/vino-server
	StartupNotify=false
	Terminal=false
	Hidden=false
	eof

	echo "eof" >> /target/usr/bin/fin_install_user
	
	cat >> /target/usr/bin/fin_install_user << eof
	# Création du fichier pour supprimer la notification de mise à jour système
	cat > /home/$login/.config/autostart/update-notifier.desktop << eof
	[Desktop Entry]
	Hidden=true
	eof

	echo "eof" >> /target/usr/bin/fin_install_user
else
	cat > /target/usr/bin/fin_install_user << eof
	#!/bin/bash
	# Configuration de la mise en veille à 5 minutes
	gconftool-2 -s -t int /apps/gnome-screensaver/idle_delay 5
	# Configuration de Vino
	# La définition du mot de passe doit s'effectuer
	# avant l'autorisation de prise de controle
	gconftool-2 -s -t string /desktop/gnome/remote_access/vnc_password $(echo -n $mdp_vino | base64)
	gconftool-2 -s -t list --list-type string /desktop/gnome/remote_access/authentication_methods '[vnc]'
	gconftool-2 -s -t bool /desktop/gnome/remote_access/prompt_enabled false 
	gconftool-2 -s -t bool /desktop/gnome/remote_access/enabled true
	eof
fi

# Création du fichier 'root'
cat > /target/usr/bin/fin_install_root << eof
#!/bin/bash
# Appel du script 'user'
su - $login -c /usr/bin/fin_install_user
# Effacement du script 'user'
rm /usr/bin/fin_install_user
# Effacement du script de fin d'installation dans cron
crontab -l > /usr/bin/tempcron
sed -i '/^@reboot /d' /usr/bin/tempcron
# ajout de la sauvegarde
case "$machine" in
t1* | t2*)
	# Génération d'une heure aléatoire entre (environ) 9h et 15h59
	heure=\\\\$(echo "scale=0;(\\\\$RANDOM/4700)+9" | bc)
	minute=\\\\$(echo "scale=0;(\\\\$RANDOM/550)" | bc)
	echo "\\\\$minute \\\\$heure * * * /usr/bin/mon_script_sauvegarde start" >> /usr/bin/tempcron
esac
crontab /usr/bin/tempcron
# Effacement du script de modification de cron
rm /usr/bin/tempcron 
eof 
#--------------------------------------
# Fin des scripts de fin d'installation
#--------------------------------------

# Insertion des points de montage des partages
case "$machine" in
t1*)
	serveur="mon_serveur_1"
	;;
t2*)
	serveur="mon_serveur_2"
	;;
esac

case "$machine" in
t1* | t2*)
	mkdir /target/mnt/$serveur
	mkdir /target/mnt/$serveur/divers
	mkdir /target/mnt/$serveur/sauvegarde
	echo "//$serveur/divers   /mnt/$serveur/divers   cifs   auto,ro,password=,iocharset=utf8,codepage=cp850   0   0" >> /target/etc/fstab
	echo "//$serveur/sauvegarde   /mnt/$serveur/sauvegarde   cifs   noauto,rw,credentials=/etc/smb_sauvegarde,iocharset=utf8,codepage=cp850   0   0" >> /target/etc/fstab

	# Création du fichier de login pour sauvegarde
	cat > /target/etc/smb_sauvegarde << eof
	username=user_pour_sauvegarde
	password=mot_de_passe
	eof
	# Changement des droits du fichier
	chmod 600 /target/etc/smb_sauvegarde
	chown root:root /target/etc/smb_sauvegarde

	# Ajout du script de sauvegarde
	cat > /target/usr/bin/mon_script_sauvegarde << eof
	#!/bin/bash
	# ***** script de sauvegarde non détaillé ici *****
	eof

	# Ajout du fichier des exclusions (sauvegarde)
	cat > /target/etc/mon_script_sauve_excl << eof
	- cache*/
	- Cache*/
	- .cache*/
	- .Cache*/
	- /Examples
	- /.gvfs
	- lock
	- /.thumbnails/
	- trash/
	- Trash/
	- /.kde/
	- *.msf
	- *.*~
	eof

	# changement des droits du script de sauvegarde
	chmod 700 /target/usr/bin/mon_script_sauvegarde
	chown root:root /target/usr/bin/mon_script_sauvegarde
esac

# Correction du problème de démontage des volumes réseaux
mv /target/etc/rc0.d/S31umountnfs.sh /target/etc/rc0.d/K31umountnfs.sh
mv /target/etc/rc6.d/S31umountnfs.sh /target/etc/rc6.d/K31umountnfs.sh
mv /target/etc/rc0.d/S40umountfs /target/etc/rc0.d/K40umountfs
mv /target/etc/rc6.d/S40umountfs /target/etc/rc6.d/K40umountfs

# Changement des droits des scripts finaux
chmod 777 /target/usr/bin/fin_install_*

# Insertion du script final 'root' dans cron
chroot /target crontab -l > /target/usr/bin/tempcron
chroot /target echo "@reboot /usr/bin/fin_install_root" >> /target/usr/bin/tempcron
chroot /target crontab /usr/bin/tempcron

# Renommage de la machine
sed -i "s/kickseed/$machine/g" /target/etc/hostname
sed -i "s/kickseed/$machine/g" /target/etc/hosts
sed -i '1i\send host-name "<hostname>";' /target/etc/dhcp3/dhclient.conf

# Configuration de Ocsinventory
echo 'server=mon_serveur_local' > /target/etc/ocsinventory/ocsinventory-agent.cfg

# Envoi d'un mail de fin d'installation
chroot /target echo "Fin d'installation de la machine $machine de $utilisateur ($login)" | chroot /target mail -s "Fin d'installation de $machine" admin@mon_domaine.com

Michaël.

Hors ligne

#43 Le 20/05/2010, à 09:05

chicanosddb

Re : Installation automatisée de (U|Ku|Xu)buntu en réseau avec Kickstart

Ok merci. Un point m'intrigue quand même dans le fichier pxelinux.cfg/default, on spécifie "ks=", ca veut dire que "ks" est compris nativement sans rien installer ni côté serveur ni côté client ?!

Merci aussi pour le détail de votre fichier, effectivement cela ne va pas m'aider pour le moment mais sûrement pour la suite !

Hors ligne

#44 Le 21/05/2010, à 11:18

chicanosddb

Re : Installation automatisée de (U|Ku|Xu)buntu en réseau avec Kickstart

Petite info en plus : J'ai testé l'install avec une version alternate d'Ubuntu.

Là, un message d'erreur me dit que le fichier ks ne peut être appliqué car le réseau n'est pas accessible.
Ce qui veut dire que finalement la commande dans le fichier pxelinux.cfg/default est bien prise en compte, mais que par la suite il n'arrive pas a avoir de connexion réseau...

Le message d'erreur exact :

Failed to download Kickstart file

The kickstart file at http://10.1.10.1/ks/ks.cfg could not be downloaded. The error was :

wget : cannot connect to remote host (10.1.10.1) : Network is unreachable

Hors ligne

#45 Le 21/05/2010, à 11:58

jakatak

Re : Installation automatisée de (U|Ku|Xu)buntu en réseau avec Kickstart

@chicanosddb
C'est plutôt un problème de réseau.
Vérifie que les droits sont bien positionnés sur ton fichier ks
Tu peux aussi ouvrir une session console (ctrl F2) et regarder le fichier /var/log/syslog pour d'autres infos

@m2nis
Très intéressant ton script, on travaille clairement sur les mêmes sujets.
Je suis pour ma part en train de finaliser pour la version 10.04, et ça passe bien.
J'ai un ks plus light, et je fais ensuite tout en script dans la %post.

Et pour info une partie de mon ks que j'utilise pour déterminer la taille de la ram et du disque pour créer les tailles de partitions en fonction.
Le fichier contenant les données de partitionnement est inclu dans mon ks dans la section partitionnement bien sûr.
Je travaille aussi pour avoir une partition /home, et j'espère pouvoir la préserver lors d'une ré-installation.

Cordialement,

Jakatak alias Jacques-Olivier

#####
## Cas ou on efface toutes les partitions : CHOIXPART=TOTAL
##
# si on a choisi d'écraser le home, on efface tout le disque
if [ $CHOIXPART == "TOTAL" ] ; then

##

echo "clearpart --all --initlabel" >> UR1_table_partitionnement.conf


	## calcul et creation de la swap

		# si la taille de la ram est < à  260 Mo on cree un swap de 768 Mo
		if [[ $taille_ram -lt "260000" ]] ; then
			echo "part swap --size 768 --asprimary" >> UR1_table_partitionnement.conf
		fi

		# si la taille de la ram est comprise entre 260 Mo et 520 Mo on cree un swap de 512 Mo
		if [[ $taille_ram -gt "260000" ]] ; then
			if [[ $taille_ram -lt "520000" ]] ; then
				echo "part swap --size 512 --asprimary" >> UR1_table_partitionnement.conf
			fi
		fi

		# si la taille de la ram est > à  520 Mo on cree un swap de 2 Go
		if [[ $taille_ram -gt "520000" ]] ; then
			echo "part swap --size 2048 --asprimary" >> UR1_table_partitionnement.conf
		fi

	## Calcul et creation du point de montage racine

		# si la taille du disque est inférieure à  40 Go on cree un / de 8192 MB
		if [[ $taille_disque -lt "41000000000" ]] ; then
			echo "part / --fstype ext4 --size 8192 --asprimary" >> UR1_table_partitionnement.conf
		fi

		# si la taille du disque est supérieure à  40 Go on cree un / de 16384 MB
		if [[ $taille_disque -gt "41000000000" ]] ; then
			echo "part / --fstype ext4 --size 16384 --asprimary" >> UR1_table_partitionnement.conf
		fi

	## Calcul et creation du point de montage /home
			echo "part /home --fstype ext4 --grow" >> UR1_table_partitionnement.conf
fi

echo ""
cat /tmp/UR1_table_partitionnement.conf

Hors ligne

#46 Le 21/05/2010, à 12:37

chicanosddb

Re : Installation automatisée de (U|Ku|Xu)buntu en réseau avec Kickstart

Jakatak, merci de ta réponse.
Je devrais prendre ce réflexe de regarder les logs...

Syslog affiche deux messages intéressants, le premier :

in.tftpd[2314]: tftp: client does not accept options

Je ne sais pas ce que ca signifie car la partie tftp a l'air de bien fonctionner.. et le deuxième :

avahi-daemon[1072]: Invalid query packet

C'est intéressant quand on sait que Avahi est un démon qui permet de découvrir automatiquement les ressources réseau et de s'y connecter...

Hors ligne

#47 Le 21/05/2010, à 16:37

m2nis

Re : Installation automatisée de (U|Ku|Xu)buntu en réseau avec Kickstart

@chicanosddb
Serait-ce un problème de configuration du serveur tftp ? Dans votre fichier /etc/default/tftpd-hpa, avez-vous quelque chose de ce genre ?

RUN_DAEMON="yes"
OPTIONS=" -l -s /[chemin_vers_fichiers]"

Si ça peut aider/orienter...


@jakatak
Dans l'entreprise, je ne crée pas (pour l'instant ?) de partition home séparée car l'intérêt me semble moins évident dans la mesure où les sauvegardes sont quotidiennes, qu'une réinstallation intervient souvent avec un changement de matériel (installation sur une nouvelle machine avant de retirer l'ancienne machine pour limiter le temps d'immobilisation) et que, quoiqu'il arrive, il me semble plus rapide de faire une réinstallation complète puis de restaurer la sauvegarde du home par le réseau que de chercher à gérer une installation, une mise à jour, ...

Dernière modification par m2nis (Le 21/05/2010, à 16:38)


Michaël.

Hors ligne

#48 Le 21/05/2010, à 16:52

chicanosddb

Re : Installation automatisée de (U|Ku|Xu)buntu en réseau avec Kickstart

m2nis, je me suis renseigné et le message d'erreur concernant le tftp n'as pas l'air grave, c'est juste que ce service ne peut pas interpréter un tas d'options, mais ca fonctionne quand même.

Pour le avahi-daemon, une mise à jour du paquet règle le problème qui donnait le message d'erreur, mais ne résout pas mon problème sad

Hors ligne

#49 Le 23/05/2010, à 10:36

jakatak

Re : Installation automatisée de (U|Ku|Xu)buntu en réseau avec Kickstart

@chicanosddb

Salut,

Tu devrais aussi regarder du côté des logs tftp et http.

Et si tu pars en console au moment de l'installation (Busybox permet l'utilisation des touches Ctrl F2 F3 ...)
Tu peux tester directement la commande wget et mettre le plus verbeux possible ... (wget -d )
Tu auras peut-être des messages d'erreur plus clairs.

à suivre

Hors ligne

#50 Le 28/05/2010, à 10:45

chicanosddb

Re : Installation automatisée de (U|Ku|Xu)buntu en réseau avec Kickstart

@jakatak

Merci de ton aide.
J'ai regardé les logs du coté apache et vsftpd, rien d'anormal..

Je suis également passé en mode console ctrl+alt f2 une fois que l'install se soit lancée. A partir d'ici, j'ai lancé un ping du serveur puis un wget -d de mon fichier kickstart sur mon serveur web. Les deux ont réussi..

Cela prouve que la couche réseau est bien opérationnelle a ce stade, je ne comprend vraiment pas pourquoi ce fichier ks ne passe pas..

Hors ligne