Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
kickstart [Le 30/06/2010, 15:52] – m2nis | kickstart [Le 21/09/2019, 06:40] (Version actuelle) – fichiers ks téléchargeables 2.10.30.210 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | {{tag> | ||
+ | ---- | ||
+ | ====== Kickstart ====== | ||
+ | Kickstart est un utilitaire permettant d' | ||
+ | |||
+ | Kickstart est à l' | ||
+ | |||
+ | <note important> | ||
+ | Le portage de Kickstart sur les distributions de Canonical est incomplet. Des instructions telles que la mise à jour de distribution (prise en charge par apt), l' | ||
+ | </ | ||
+ | |||
+ | Kickstart permet également l' | ||
+ | |||
+ | ===== Installation ===== | ||
+ | Kickstart est un utilitaire inclus dans le système et ne nécessite pas d' | ||
+ | |||
+ | ===== Configuration ===== | ||
+ | |||
+ | |||
+ | ==== Utilitaire de génération de fichier ks ==== | ||
+ | Il existe un petit utilitaire graphique permettant de définir rapidement les paramètres de base d'un fichier Kickstart. Pour cela, vous pouvez installer le paquet [[apt:// | ||
+ | |||
+ | ==== Exemple simple de fichier ks ==== | ||
+ | Voici ce que donne un fichier ks généré avec peu d' | ||
+ | |||
+ | <code ks simple.ks> | ||
+ | #Generated by Kickstart Configurator | ||
+ | # | ||
+ | |||
+ | #System language | ||
+ | lang fr_FR | ||
+ | #Language modules to install | ||
+ | langsupport fr_FR | ||
+ | #System keyboard | ||
+ | keyboard fr | ||
+ | #System mouse | ||
+ | mouse | ||
+ | #System timezone | ||
+ | timezone Europe/ | ||
+ | #Root password | ||
+ | rootpw --disabled | ||
+ | #Initial user | ||
+ | user test --fullname "" | ||
+ | #Use text mode install | ||
+ | text | ||
+ | #Install OS instead of upgrade | ||
+ | install | ||
+ | #Use CDROM installation media | ||
+ | cdrom | ||
+ | #System bootloader configuration | ||
+ | bootloader --location=mbr | ||
+ | #Clear the Master Boot Record | ||
+ | zerombr yes | ||
+ | #Partition clearing information | ||
+ | clearpart --all --initlabel | ||
+ | #System authorization infomation | ||
+ | auth --useshadow | ||
+ | #Firewall configuration | ||
+ | firewall --disabled | ||
+ | #Do not configure the X Window System | ||
+ | skipx | ||
+ | </ | ||
+ | |||
+ | ==== Exemple avancé de fichier ks ==== | ||
+ | Voici un exemple de fichier Kickstart un peu plus avancé, faisant notamment appel à des scripts complémentaires : | ||
+ | |||
+ | <code ks avancé.ks> | ||
+ | # Script Kickstart pour installation automatisée | ||
+ | # de (U|Xu|Ku)buntu 10.04 LTS par le réseau | ||
+ | # | ||
+ | # Options d' | ||
+ | # machine=nom_de_machine (obligatoire) | ||
+ | # abandon de l' | ||
+ | # utilisateur=nom_d_utilisateur (facultatif) | ||
+ | # = " | ||
+ | # login=login_utilisateur (facultatif) | ||
+ | # = $machine si non fourni | ||
+ | # mdp=mot_de_passe_utilisateur (facultatif) | ||
+ | # = " | ||
+ | # mdp_vino=mot_de_passe_prise_de_controle (facultatif) | ||
+ | # = $mdp si non fourni | ||
+ | # distrib=[ubuntu|xubuntu] (facultatif, | ||
+ | # aformat=non (facultatif, | ||
+ | # reboot=oui (facultatif, | ||
+ | # redémarrage en fin d' | ||
+ | |||
+ | # Langue à utiliser pour l' | ||
+ | lang fr_FR | ||
+ | |||
+ | # Modules de langue à installer | ||
+ | langsupport fr_FR | ||
+ | |||
+ | # Clavier | ||
+ | keyboard fr | ||
+ | |||
+ | # Souris | ||
+ | mouse | ||
+ | |||
+ | # Fuseau horaire | ||
+ | timezone --utc Europe/ | ||
+ | |||
+ | # 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 / | ||
+ | |||
+ | # Redémarrage après installation si demandé - config en section pre% | ||
+ | %include / | ||
+ | |||
+ | # 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:// | ||
+ | |||
+ | # Configuration du chargeur de démarrage | ||
+ | bootloader --location=mbr | ||
+ | |||
+ | # Destruction des tables de partitions invalides | ||
+ | zerombr yes | ||
+ | |||
+ | # Supression puis définition des partitions si demandé | ||
+ | %include / | ||
+ | |||
+ | # Définition des options d' | ||
+ | auth --useshadow | ||
+ | |||
+ | # Configuration du réseau | ||
+ | %include / | ||
+ | |||
+ | # Configuration du pare-feu | ||
+ | firewall --disabled | ||
+ | |||
+ | # Ne pas configurer X pour le système | ||
+ | skipx | ||
+ | |||
+ | # Installation des paquets supplémentaires | ||
+ | %packages --resolvedeps | ||
+ | %include / | ||
+ | |||
+ | %pre | ||
+ | |||
+ | # Lecture et mise en variables des paramètres d' | ||
+ | set -- `cat / | ||
+ | for I in $*; do case " | ||
+ | |||
+ | if [ -z " | ||
+ | echo " | ||
+ | echo " | ||
+ | echo " | ||
+ | sleep 5 | ||
+ | reboot | ||
+ | fi | ||
+ | |||
+ | if [ -z " | ||
+ | utilisateur=" | ||
+ | fi | ||
+ | |||
+ | if [ -z " | ||
+ | login=$machine | ||
+ | fi | ||
+ | |||
+ | if [ -z " | ||
+ | mdp=" | ||
+ | fi | ||
+ | |||
+ | if [ -z " | ||
+ | mdp_vino=$mdp | ||
+ | fi | ||
+ | |||
+ | if [ " | ||
+ | distrib=" | ||
+ | fi | ||
+ | |||
+ | if [ " | ||
+ | aformat=" | ||
+ | fi | ||
+ | |||
+ | if [ " | ||
+ | reboot=" | ||
+ | fi | ||
+ | |||
+ | echo " | ||
+ | echo " | ||
+ | echo " | ||
+ | echo " " | ||
+ | echo " " | ||
+ | echo " | ||
+ | echo " | ||
+ | echo " | ||
+ | echo " | ||
+ | echo " | ||
+ | echo " | ||
+ | echo " | ||
+ | echo " | ||
+ | echo " | ||
+ | echo " | ||
+ | echo " " | ||
+ | echo " " | ||
+ | echo " | ||
+ | echo " | ||
+ | echo " | ||
+ | echo " " | ||
+ | echo " | ||
+ | echo " | ||
+ | echo " | ||
+ | echo " " | ||
+ | echo " " | ||
+ | echo " " | ||
+ | sleep 30 | ||
+ | |||
+ | # Configuration de l' | ||
+ | echo "user $login --fullname $utilisateur --password $mdp" > / | ||
+ | |||
+ | # Gestion du reboot si demandé | ||
+ | if [ " | ||
+ | echo " | ||
+ | fi | ||
+ | |||
+ | # Gestion des partitions si demandé | ||
+ | if [ " | ||
+ | cat > / | ||
+ | # Suppression des partitions du système | ||
+ | clearpart --all --initlabel | ||
+ | # Définition des partitions | ||
+ | part swap --size 1024 --fstype swap --asprimary | ||
+ | part / --size 1024 --fstype ext3 --asprimary --grow | ||
+ | eof | ||
+ | fi | ||
+ | |||
+ | # Configuration réseau (paramètre ' | ||
+ | echo " | ||
+ | |||
+ | # Configuration des paquets à installer | ||
+ | if [ " | ||
+ | cat > / | ||
+ | @ xubuntu-desktop | ||
+ | bsd-mailx | ||
+ | cups-pdf | ||
+ | icedtea6-plugin | ||
+ | ntp | ||
+ | numlockx | ||
+ | ocsinventory-agent | ||
+ | openoffice.org | ||
+ | smbfs | ||
+ | ssh | ||
+ | ssmtp | ||
+ | # | ||
+ | vino | ||
+ | eof | ||
+ | else | ||
+ | cat > / | ||
+ | @ ubuntu-desktop | ||
+ | bsd-mailx | ||
+ | cups-pdf | ||
+ | icedtea6-plugin | ||
+ | ntp | ||
+ | ocsinventory-agent | ||
+ | smbfs | ||
+ | ssh | ||
+ | ssmtp | ||
+ | thunderbird-locale-fr | ||
+ | # | ||
+ | eof | ||
+ | fi | ||
+ | |||
+ | %post --nochroot | ||
+ | |||
+ | # Reprise de la définition des variables non renseignées car non conservées | ||
+ | if [ -z " | ||
+ | utilisateur=" | ||
+ | fi | ||
+ | |||
+ | if [ -z " | ||
+ | login=$machine | ||
+ | fi | ||
+ | |||
+ | if [ -z " | ||
+ | mdp=" | ||
+ | fi | ||
+ | |||
+ | if [ -z " | ||
+ | mdp_vino=$mdp | ||
+ | fi | ||
+ | |||
+ | if [ " | ||
+ | distrib=" | ||
+ | fi | ||
+ | |||
+ | if [ " | ||
+ | reboot=" | ||
+ | fi | ||
+ | |||
+ | # Changement de serveur du temps (selon nom de la machine) | ||
+ | case " | ||
+ | t1* | t2*) | ||
+ | sed -i ' | ||
+ | ;; | ||
+ | esac | ||
+ | |||
+ | # Changement du port ssh | ||
+ | sed -i ' | ||
+ | |||
+ | # Mise en place de l' | ||
+ | if [ " | ||
+ | cat > / | ||
+ | [daemon] | ||
+ | TimedLoginEnable=false | ||
+ | AutomaticLoginEnable=true | ||
+ | TimedLogin=$login | ||
+ | AutomaticLogin=$login | ||
+ | TimedLoginDelay=30 | ||
+ | DefaultSession=xubuntu | ||
+ | eof | ||
+ | else | ||
+ | cat > / | ||
+ | TimedLoginEnable=false | ||
+ | AutomaticLoginEnable=true | ||
+ | TimedLogin=$login | ||
+ | AutomaticLogin=$login | ||
+ | TimedLoginDelay=30 | ||
+ | DefaultSession=gnome | ||
+ | eof | ||
+ | |||
+ | fi | ||
+ | |||
+ | # Configuration de ssmtp | ||
+ | cat > / | ||
+ | root=admin@mon_domaine.com | ||
+ | mailhub=mon_serveur_de_mail | ||
+ | rewriteDomain=mon_domaine.com | ||
+ | hostname=$machine | ||
+ | FromLineOverride=YES | ||
+ | eof | ||
+ | cat > / | ||
+ | root: | ||
+ | admin: | ||
+ | $machine: | ||
+ | eof | ||
+ | |||
+ | # Suppression des paquets non souhaités | ||
+ | if [ " | ||
+ | chroot /target apt-get -y remove abiword-common | ||
+ | chroot /target apt-get -y remove gnome-games-common | ||
+ | chroot /target apt-get -y remove gnumeric-common | ||
+ | chroot /target apt-get -y remove pidgin-data | ||
+ | chroot /target apt-get -y remove transmission-common | ||
+ | chroot /target apt-get -y remove xchat-common | ||
+ | else | ||
+ | chroot /target apt-get -y remove empathy-common | ||
+ | chroot /target apt-get -y remove gbrainy | ||
+ | chroot /target apt-get -y remove gnome-games-common | ||
+ | chroot /target apt-get -y remove gwibber-service | ||
+ | chroot /target apt-get -y remove pidgin | ||
+ | chroot /target apt-get -y remove pitivi | ||
+ | chroot /target apt-get -y remove transmission-common | ||
+ | fi | ||
+ | |||
+ | # Modification des dépots | ||
+ | # suppression des dépots de sources | ||
+ | sed -i ' | ||
+ | case " | ||
+ | t1* | t2*) | ||
+ | # passage des dépots sécurité sur mon_serveur_local | ||
+ | sed -i ' | ||
+ | ;; | ||
+ | *) | ||
+ | # passage des dépots sur ubuntu | ||
+ | sed -i ' | ||
+ | ;; | ||
+ | esac | ||
+ | # ajout d'un dépot supplémentaire | ||
+ | case " | ||
+ | t1* | t2* | t3*) | ||
+ | echo 'deb http:// | ||
+ | esac | ||
+ | |||
+ | # | ||
+ | # Préparation des scripts de fin d' | ||
+ | # Ces scripts seront exécutés au premier | ||
+ | # redémarrage de la machine | ||
+ | # fin_install_root appelle fin_install_user | ||
+ | # | ||
+ | # Création du fichier ' | ||
+ | if [ " | ||
+ | cat > / | ||
+ | #!/bin/bash | ||
+ | # Configuration de Vino | ||
+ | # La définition du mot de passe doit s' | ||
+ | # avant l' | ||
+ | gconftool-2 -s -t string / | ||
+ | gconftool-2 -s -t list --list-type string / | ||
+ | gconftool-2 -s -t bool / | ||
+ | gconftool-2 -s -t bool / | ||
+ | # | ||
+ | # Création du fichier de lancement de Vino | ||
+ | mkdir / | ||
+ | mkdir / | ||
+ | cat > / | ||
+ | [Desktop Entry] | ||
+ | Encoding=UTF-8 | ||
+ | Version=0.9.4 | ||
+ | Type=Application | ||
+ | Name=Vino | ||
+ | Comment=Vnc Server | ||
+ | Exec=/ | ||
+ | StartupNotify=false | ||
+ | Terminal=false | ||
+ | Hidden=false | ||
+ | eof | ||
+ | |||
+ | echo " | ||
+ | | ||
+ | cat >> / | ||
+ | |||
+ | # Création du fichier pour supprimer la notification de mise à jour système | ||
+ | cat > / | ||
+ | [Desktop Entry] | ||
+ | Hidden=true | ||
+ | eof | ||
+ | |||
+ | echo " | ||
+ | else | ||
+ | cat > / | ||
+ | #!/bin/bash | ||
+ | # Configuration de l' | ||
+ | # Désactivation des effets visuels | ||
+ | gconftool-2 -s -t string / | ||
+ | # Modification des polices d' | ||
+ | gconftool-2 -s -t string / | ||
+ | gconftool-2 -s -t string / | ||
+ | gconftool-2 -s -t string / | ||
+ | gconftool-2 -s -t string / | ||
+ | gconftool-2 -s -t string / | ||
+ | # Modification du thème | ||
+ | gconftool-2 -s -t string / | ||
+ | gconftool-2 -s -t string / | ||
+ | gconftool-2 -s -t string / | ||
+ | gconftool-2 -s -t string / | ||
+ | # Configuration de la mise en veille | ||
+ | # | ||
+ | gconftool-2 -s -t bool / | ||
+ | # Configuration du nombre d' | ||
+ | gconftool-2 -s -t int / | ||
+ | # Configuration de Vino | ||
+ | # La définition du mot de passe doit s' | ||
+ | # avant l' | ||
+ | gconftool-2 -s -t string / | ||
+ | gconftool-2 -s -t list --list-type string / | ||
+ | gconftool-2 -s -t bool / | ||
+ | gconftool-2 -s -t bool / | ||
+ | eof | ||
+ | fi | ||
+ | |||
+ | # Création du fichier ' | ||
+ | cat > / | ||
+ | #!/bin/bash | ||
+ | # Appel du script ' | ||
+ | su - $login -c / | ||
+ | # Effacement du script ' | ||
+ | rm / | ||
+ | # Effacement du script de fin d' | ||
+ | crontab -l > / | ||
+ | sed -i '/ | ||
+ | # ajout de la sauvegarde | ||
+ | case " | ||
+ | t1* | t2*) | ||
+ | # Génération d'une heure aléatoire entre (environ) 9h et 15h59 | ||
+ | heure=\\\\$(echo " | ||
+ | minute=\\\\$(echo " | ||
+ | echo " | ||
+ | esac | ||
+ | crontab / | ||
+ | # Effacement du script de modification de cron | ||
+ | rm / | ||
+ | / | ||
+ | eof | ||
+ | # | ||
+ | # Fin des scripts de fin d' | ||
+ | # | ||
+ | |||
+ | # Insertion des points de montage des partages | ||
+ | case " | ||
+ | t1*) | ||
+ | serveur=" | ||
+ | ;; | ||
+ | t2*) | ||
+ | serveur=" | ||
+ | ;; | ||
+ | esac | ||
+ | |||
+ | case " | ||
+ | t1* | t2*) | ||
+ | mkdir / | ||
+ | mkdir / | ||
+ | mkdir / | ||
+ | echo "// | ||
+ | echo "// | ||
+ | |||
+ | # Création du fichier de login pour sauvegarde | ||
+ | cat > / | ||
+ | username=user_pour_sauvegarde | ||
+ | password=mot_de_passe | ||
+ | eof | ||
+ | # Changement des droits du fichier | ||
+ | chmod 600 / | ||
+ | chown root:root / | ||
+ | |||
+ | # Ajout du script de sauvegarde | ||
+ | cat > / | ||
+ | #!/bin/bash | ||
+ | # ***** script de sauvegarde non détaillé ici ***** | ||
+ | eof | ||
+ | |||
+ | # Ajout du fichier des exclusions (sauvegarde) | ||
+ | cat > / | ||
+ | - cache*/ | ||
+ | - Cache*/ | ||
+ | - .cache*/ | ||
+ | - .Cache*/ | ||
+ | - /Examples | ||
+ | - /.gvfs | ||
+ | - lock | ||
+ | - / | ||
+ | - trash/ | ||
+ | - Trash/ | ||
+ | - /.kde/ | ||
+ | - *.msf | ||
+ | - *.*~ | ||
+ | eof | ||
+ | |||
+ | # changement des droits du script de sauvegarde | ||
+ | chmod 700 / | ||
+ | chown root:root / | ||
+ | esac | ||
+ | |||
+ | # Changement des droits des scripts finaux | ||
+ | chmod 777 / | ||
+ | |||
+ | # Insertion du script final ' | ||
+ | chroot /target crontab -l > / | ||
+ | chroot /target echo " | ||
+ | chroot /target crontab / | ||
+ | |||
+ | # Renommage de la machine | ||
+ | sed -i " | ||
+ | sed -i " | ||
+ | |||
+ | # Configuration de Ocsinventory | ||
+ | echo ' | ||
+ | |||
+ | # Envoi d'un mail de fin d' | ||
+ | chroot /target echo "Fin d' | ||
+ | </ | ||
+ | |||
+ | ===== Utilisation ===== | ||
+ | |||
+ | |||
+ | ==== Déploiement par le réseau ==== | ||
+ | |||
+ | L' | ||
+ | |||
+ | === Éléments nécessaires === | ||
+ | Pour parvenir à réaliser une installation par le réseau, il est nécessaire d' | ||
+ | |||
+ | === Déroulement de l' | ||
+ | Voici le déroulement d'une installation par le réseau : | ||
+ | - la nouvelle machine démarre sur le réseau (en mode PXE) et demande au serveur DHCP une adresse IP et les informations qui lui permettront de trouver son image de boot | ||
+ | - la nouvelle machine récupère sur le serveur tftp son image de boot | ||
+ | - la nouvelle machine prend sur le serveur http le fichier Kickstart | ||
+ | - la nouvelle machine effectue son installation en récupérant les paquets sur un serveur [[tutoriel: | ||
+ | Pour les deux premières étapes, vous trouverez de précieux compléments sur la page traitant de [[netboot|netboot]]. | ||
+ | |||
+ | === Détails de configuration === | ||
+ | |||
+ | == Options dhcp pour un boot réseau == | ||
+ | Pour que la machine qui va démarrer sur le réseau puisse trouver son image de boot, voici les instructions qui doivent figurer dans le serveur DHCP (fichier / | ||
+ | < | ||
+ | # définit l' | ||
+ | next-server 192.168.xxx.xxx; | ||
+ | # chemin vers le répertoire racine du serveur tftp | ||
+ | option root-path " | ||
+ | # nom de l' | ||
+ | filename " | ||
+ | </ | ||
+ | |||
+ | == Obtenir un clavier français au menu de boot == | ||
+ | Ajouter la ligne : | ||
+ | < | ||
+ | KBDMAP fr.kbd | ||
+ | </ | ||
+ | au début du fichier [répertoire racine du serveur tftp]/ | ||
+ | et copier le fichier fr.kbd dans le répertoire racine du serveur tftp. Si vous ne trouvez pas ce fichier, une version est disponible sur [[http:// | ||
+ | |||
+ | == Ajout du fichier Kickstart au menu de boot == | ||
+ | Dans le fichier [répertoire racine du serveur tftp]/ | ||
+ | remplacez la ligne | ||
+ | < | ||
+ | label install | ||
+ | [...] | ||
+ | append vga=normal initrd=ubuntu-installer/ | ||
+ | </ | ||
+ | par (si le serveur tftp est également le serveur http) | ||
+ | < | ||
+ | label install | ||
+ | [...] | ||
+ | append vga=normal initrd=ubuntu-installer/ | ||
+ | </ | ||
+ | ou par (si les serveurs tftp et http sont sur deux machines différentes) | ||
+ | < | ||
+ | label install | ||
+ | [...] | ||
+ | append vga=normal initrd=ubuntu-installer/ | ||
+ | </ | ||
+ | |||
+ | Une fois au menu de boot, vous pourrez alors sélectionner " | ||
+ | |||
+ | ==== Personnalisation d'un CD-ROM ==== | ||
+ | Pour personnaliser un CD-ROM d' | ||
+ | |||
+ | |||
+ | |||
+ | ===== Voir aussi ===== | ||
+ | * < | ||
+ | * Discussion [[http:// | ||
+ | * [[: | ||
+ | * [[https:// | ||
+ | * [[http:// | ||
+ | * [[https:// | ||
+ | |||
+ | ---- | ||
+ | |||
+ | // |