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 29/08/2017, 16:48] – lien HS 129.175.152.220 | 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:// | ||
| + | |||
| + | ---- | ||
| + | |||
| + | // | ||
