Add old_files used before to generate an iso with preseed file.
This commit is contained in:
parent
0d32828d45
commit
cfbf04b9e7
|
@ -0,0 +1,246 @@
|
|||
#!/bin/sh
|
||||
################################################################################################
|
||||
##
|
||||
## Nom: gen_iso.sh
|
||||
##
|
||||
## Licence: Creative Commons
|
||||
##
|
||||
## Version : 0.3
|
||||
##
|
||||
## Comportement: Recréer une image iso de Debian businesscard en ajoutant des configuration
|
||||
## personnelles (preseed.cfg, boot automatique, installation automatique, ...)
|
||||
##
|
||||
## Dépendances:
|
||||
## - genisoimage
|
||||
## - Être lancé en root
|
||||
##
|
||||
##
|
||||
################################################################################################
|
||||
##
|
||||
## Date de création: 30-08-2011
|
||||
##
|
||||
## Auteur: Gardouille
|
||||
## Inspiré par le script de Yves Mettier
|
||||
##
|
||||
## Dernière modifications:
|
||||
## 30-08-2011: -
|
||||
# **********************************************************************************************
|
||||
##
|
||||
## 29/12/2011 - 0.3:
|
||||
## - Proposition de modifier l'utilisateur principal
|
||||
## - Téléchargement de la dernière image iso Debian Testing Businesscard
|
||||
## - Vérification de la date de l'iso (si présente):
|
||||
## - Aujourd'hui: l'image iso est réutilisée pour ce script
|
||||
## - Antérieure: l'image iso est supprimée puis retéléchargée
|
||||
## 13/09/2011 - 0.2:
|
||||
## - Proposition à l'utilisateur de modifier les variables hostname et domainname
|
||||
## - Vérification que le script se lance en root
|
||||
## - Vérification que genisoimage est bien installé ou proposition d'installation
|
||||
# **********************************************************************************************
|
||||
##
|
||||
## À modifier:
|
||||
## - Ajouter un mode full silent
|
||||
## - Proposer une liste de noyau en fonction de la distribution choisie
|
||||
## - Ajouter le fichier de logs pour les echo
|
||||
## - Ajouter des valeurs par défaut pour les variables
|
||||
##
|
||||
##
|
||||
################################################################################################
|
||||
|
||||
|
||||
|
||||
# **********************************************************************************************
|
||||
#
|
||||
# Variables globales
|
||||
#
|
||||
# -----------------------------------------------------------
|
||||
fichier_log="/tmp/gen_iso.log"
|
||||
if [ -f ${fichier_log} ]; then
|
||||
rm -f ${fichier_log}
|
||||
fi
|
||||
|
||||
PREFIX=/tmp/debian
|
||||
# Emplacement temporaire
|
||||
TMPDIR=${PREFIX}/tmp
|
||||
# Emplacement temporaire où l'iso originale sera montée
|
||||
MNTDIR=${TMPDIR}/mnt
|
||||
|
||||
# Emplacement qui contient les données à ajouter (preseed, isolinux) ainsi que la future image iso
|
||||
DATADIR=/media/udata/config_debian/sid
|
||||
# Emplacement où sera stocké le contenu de la nouvelle image iso
|
||||
NEWISODIR=${TMPDIR}/new_debian_businesscard
|
||||
# Fichier preseed.cfg
|
||||
PRESEEDFILE=${DATADIR}/preseed.cfg
|
||||
# Fichier image iso originale
|
||||
DEBIANISO=${DATADIR}/debian-testing-i386-businesscard.iso
|
||||
# Adresse de l'iso Debian
|
||||
URLISO="http://cdimage.debian.org/cdimage/daily-builds/daily/arch-latest/i386/iso-cd/debian-testing-i386-businesscard.iso"
|
||||
# Fichier isolinux.cfg
|
||||
ISOLINUX_CFG_FILE=${DATADIR}/isolinux.cfg
|
||||
# Emplacement de la nouvelle image iso
|
||||
NEWDEBIANISO=${DATADIR}/new-debian-testing-businesscard.iso
|
||||
|
||||
# Variable pour modifier le fichier preseed.cfg
|
||||
MYHOSTNAME=""
|
||||
MYDOMAINNAME=""
|
||||
MYUSER=""
|
||||
|
||||
|
||||
# Fin des variables globales
|
||||
# -----------------------------------------------------------
|
||||
# **********************************************************************************************
|
||||
|
||||
|
||||
|
||||
# **********************************************************************************************
|
||||
#
|
||||
# Fonctions globales
|
||||
#
|
||||
# -----------------------------------------------------------
|
||||
# Divers echos ...
|
||||
echoi() { echo " (ii) $*" >> "${fichier_log}" ; }
|
||||
echok() { echo " (ok) $*" >> "${fichier_log}" ; }
|
||||
echow() { echo " (!!) $*" >> "${fichier_log}" ; }
|
||||
echnk() { echo " (EE) $*" >> "${fichier_log}" ; }
|
||||
|
||||
## maj_iso_debian
|
||||
# Télécharge le dernier build de l'iso debian testing
|
||||
maj_iso_debian()
|
||||
{
|
||||
if [ -f ${DEBIANISO} ]; then # Si une image iso est déjà présente
|
||||
stat -c %y ${DEBIANISO}|grep `date +%Y-%m-%d` > /dev/null 2>&1
|
||||
DATEISO=$?
|
||||
if [ "${DATEISO}" = 0 ]; then # Si DATEISO=0, l'image iso est d'aujourd'hui
|
||||
echoi "L'image iso est d'aujourd'hui."
|
||||
else # Sinon on la met à jour
|
||||
echoi "L'image iso doit-être mise à jour"
|
||||
rm -f ${DEBIANISO}
|
||||
wget ${URLISO}
|
||||
fi
|
||||
else
|
||||
wget ${URLISO}
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
## Proposer à l'utilisateur de modifier une variable
|
||||
# Prototype: set_var $1 $2 $3
|
||||
# $1: variable à modifier
|
||||
# $2: nom de la variable à modifier
|
||||
# $3: message à afficher
|
||||
set_var()
|
||||
{
|
||||
echo -n ${3} " ["$1"] "
|
||||
read $2
|
||||
|
||||
while [ -z "${1}" ] # Tant que la variable est vide
|
||||
do
|
||||
echo -n ${3} " [${1}] "
|
||||
read $2
|
||||
done
|
||||
|
||||
}
|
||||
|
||||
# Fin des fonctions globales
|
||||
# -----------------------------------------------------------
|
||||
# **********************************************************************************************
|
||||
|
||||
|
||||
|
||||
# **********************************************************************************************
|
||||
#
|
||||
# Programme principale
|
||||
#
|
||||
# -----------------------------------------------------------
|
||||
|
||||
# Téléchargement de la dernière image iso debian
|
||||
maj_iso_debian
|
||||
|
||||
|
||||
### Vérification que le script est bien lancé en root
|
||||
if [ "${USER}" = "root" ]; then
|
||||
echo "Lancement du script d'installation"
|
||||
else
|
||||
echo "/!\\ Le script nécessite d'être root /!\\"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
### Vérification de la présence du paquet genisoimage
|
||||
dpkg -s genisoimage|grep installed > /dev/null 2>&1
|
||||
pkg_geniso=$?
|
||||
if [ -n "${pkg_geniso}" ]; then
|
||||
echo "genisoimage est installé" > /dev/null 2>&1
|
||||
else
|
||||
echo "/!\\ Le paquet genisoimage n'est pas installé /!\\"
|
||||
echo "Appuyer sur une touche pour l'installer avec aptitude ou CTRL+C pour quitter le script et l'installer vous même."
|
||||
read -p "" touche
|
||||
aptitude install genisoimage
|
||||
fi
|
||||
|
||||
# Changement des variables:
|
||||
#set_var $MYHOSTNAME MYHOSTNAME "Quel est le nom de la future machine?"
|
||||
#set_var $MYDOMAINNAME MYDOMAINNAME "Quel le domaine de la future machine?"
|
||||
|
||||
while [ -z "${MYHOSTNAME}" ] # Tant que la variable est vide
|
||||
do
|
||||
echo -n "Quel le nom de la future machine [${MYHOSTNAME}]?: "
|
||||
read MYHOSTNAME
|
||||
done
|
||||
while [ -z "${MYDOMAINNAME}" ] # Tant que la variable est vide
|
||||
do
|
||||
echo -n "Quel le nom du futur domaine [${MYDOMAINNAME}]?: "
|
||||
read MYDOMAINNAME
|
||||
done
|
||||
while [ -z "${MYUSER}" ] # Tant que la variable est vide
|
||||
do
|
||||
echo -n "Quel le nom de l'utilisateur principal [${MYUSER}]?: "
|
||||
read MYUSER
|
||||
done
|
||||
|
||||
|
||||
|
||||
# Récupérer le contenu de l'image ISO:
|
||||
mkdir -p ${MNTDIR}
|
||||
mount -o loop ${DEBIANISO} ${MNTDIR} > /dev/null 2>&1
|
||||
|
||||
# Suppression d'un éventuel répertoire temporaire
|
||||
rm -rf ${NEWISODIR}
|
||||
mkdir -p ${NEWISODIR}
|
||||
# Synchronisation du contenu de l'iso
|
||||
rsync -a -H --exclude=TRANS.TBL ${MNTDIR}/ ${NEWISODIR}
|
||||
|
||||
# On démonte l'image iso et on supprime le répertoire
|
||||
umount ${MNTDIR}
|
||||
rmdir ${MNTDIR}
|
||||
|
||||
# Copie du fichier preseed.cfg
|
||||
cat ${PRESEEDFILE} | sed -e "s/@@HOSTNAME@@/${MYHOSTNAME}/g" | sed -e "s/@@DOMAINNAME@@/${MYDOMAINNAME}/g" | sed -e "s/@@MYUSER@@/${MYUSER}/g" > ${NEWISODIR}/preseed.cfg
|
||||
#cat ${PRESEEDFILE}|sed -e "s/@@HOSTNAME@@/${MYHOSTNAME}/g" | sed -e "s/@@DOMAINNAME@@/${MYDOMAINNAME}/g" | sed -e "s/@@MYUSER@@/${MYUSER}/g" > ${NEWISODIR}/preseed.cfg
|
||||
|
||||
# Copie du fichier isolinux.cfg
|
||||
cp ${ISOLINUX_CFG_FILE} ${NEWISODIR}/isolinux
|
||||
|
||||
# Régénération du fichier md5sum.txt
|
||||
cd ${NEWISODIR}
|
||||
md5sum `find -type f` > md5sum.txt
|
||||
|
||||
# Génération de l'image iso
|
||||
cd ${NEWISODIR}
|
||||
genisoimage -o ${NEWDEBIANISO} \
|
||||
-r -J -no-emul-boot -boot-load-size 4 \
|
||||
-boot-info-table -b isolinux/isolinux.bin \
|
||||
-c isolinux/boot.cat \
|
||||
${NEWISODIR}
|
||||
|
||||
cd -
|
||||
|
||||
# Un peu de ménage
|
||||
rm -rf ${NEWISODIR}
|
||||
|
||||
|
||||
exit 0
|
||||
# Fin de la boucle principale
|
||||
# -----------------------------------------------------------
|
||||
# **********************************************************************************************
|
||||
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
default vesamenu.c32
|
||||
#prompt 1
|
||||
timeout 2
|
||||
|
||||
default install
|
||||
label install
|
||||
menu label ^Install
|
||||
menu default
|
||||
kernel /install.386/vmlinuz
|
||||
append preseed/file=/cdrom/preseed.cfg lang=fr locale=fr_FR console-keymaps-at/keymap=fr-latin9 vga=normal initrd=/install.386/initrd.gz -- quiet
|
|
@ -0,0 +1,188 @@
|
|||
##### Langues #####
|
||||
# Préconfigurer la locale seule définit la langue, le pays et la locale.
|
||||
d-i debian-installer/locale select fr_FR.UTF-8
|
||||
|
||||
# Choix du clavier :
|
||||
d-i console-keymaps-at/keymap select fr-latin9
|
||||
#d-i keyboard-configuration/xkb-keymap select fr(latin9)
|
||||
# Choix d'une architecture différente :
|
||||
#d-i console-keymaps-usb/keymap select mac-usb-us
|
||||
|
||||
##### Réseau #####
|
||||
# Interdire toute configuration réseau. C'est utile pour des installations
|
||||
# à partir de cédérom sur des machines sans réseau. Les questions et les avertissements
|
||||
# à propos du réseau ainsi que les temps d'attente sont fastidieux.
|
||||
#d-i netcfg/enable boolean false
|
||||
|
||||
# Netcfg choisira une interface connectée si possible. Cela empêchera d'afficher
|
||||
# une liste s'il y a plusieurs interfaces.
|
||||
#d-i netcfg/choose_interface select auto
|
||||
|
||||
# Pour utiliser une interface particulière :
|
||||
d-i netcfg/choose_interface select eth0
|
||||
|
||||
# Quand le serveur dhcp est lent et que l'installateur s'arrête pour l'attendre,
|
||||
# ceci peut être utile :
|
||||
#d-i netcfg/dhcp_timeout string 60
|
||||
|
||||
# Si vous préférez configurer vous-même le réseau, décommentez cette ligne et
|
||||
# les lignes suivantes sur la configuration du réseau.
|
||||
#d-i netcfg/disable_dhcp boolean true
|
||||
|
||||
# Si vous voulez que le fichier de préconfiguration fonctionne aussi bien
|
||||
# avec que sans serveur dhcp, décommentez ces lignes et les lignes sur la
|
||||
# configuration du réseau.
|
||||
#d-i netcfg/dhcp_failed note
|
||||
#d-i netcfg/dhcp_options select Configure network manually
|
||||
|
||||
# Configuration du réseau.
|
||||
#d-i netcfg/get_nameservers string 192.168.1.1
|
||||
#d-i netcfg/get_ipaddress string 192.168.1.42
|
||||
#d-i netcfg/get_netmask string 255.255.255.0
|
||||
#d-i netcfg/get_gateway string 192.168.1.1
|
||||
#d-i netcfg/confirm_static boolean true
|
||||
|
||||
# Remarquez que les valeurs données par DHCP, nom de domaine ou nom de
|
||||
# machine, prennent le pas sur les valeurs déclarées ici. Cependant,
|
||||
# cette déclaration empêche que les questions ne soient posées même si les
|
||||
# valeurs viennent de dhcp.
|
||||
d-i netcfg/get_hostname string @@HOSTNAME@@
|
||||
d-i netcfg/get_domain string @@DOMAINNAME@@
|
||||
|
||||
# Supprimer le dialogue irritant sur la clé WEP.
|
||||
#d-i netcfg/wireless_wep string
|
||||
# Et l'étonnant nom de machine DHCP que certains FAI utilisent comme mot de
|
||||
# passe.
|
||||
#d-i netcfg/dhcp_hostname string radish
|
||||
|
||||
# Si pour le réseau ou pour un autre matériel vous avez besoin d'un microprogramme
|
||||
# (« firmware ») non libre, vous pouvez forcer l'installateur à le télécharger,
|
||||
# en évitant la demande de confirmation.
|
||||
# Vous pouvez aussi désactiver la question en mettant ce paramètre « false ».
|
||||
#d-i hw-detect/load_firmware boolean true
|
||||
|
||||
##### Comptes #####
|
||||
# Autoriser les connexions du superutilisateur
|
||||
d-i passwd/root-login boolean true
|
||||
# On peut aussi ne pas créer de compte d'utilisateur.
|
||||
d-i passwd/make-user boolean true
|
||||
|
||||
#Le mot de passe de root en clair...
|
||||
#d-i passwd/root-password password r00tme
|
||||
#d-i passwd/root-password-again password r00tme
|
||||
# ... ou chiffré avec un hachage MD5
|
||||
#d-i passwd/root-password-crypted password $1$098f6bcd4621d373cade4e832627b4f6
|
||||
|
||||
# Vous pouvez aussi présélectionner le nom de l'utilisateur et son identifiant
|
||||
# de connexion
|
||||
d-i passwd/user-fullname string
|
||||
d-i passwd/username string @@MYUSER@@
|
||||
# Mot de passe de l'utilisateur en clair...
|
||||
#d-i passwd/user-password password insecure
|
||||
#d-i passwd/user-password-again password insecure
|
||||
# ... ou chiffré avec un hachage MD5
|
||||
d-i passwd/user-password-crypted password $1$098f6bcd4621d373cade4e832627b4f6
|
||||
# Préciser l'UID du premier utilisateur.
|
||||
#d-i passwd/user-uid string 1010
|
||||
|
||||
##### Miroirs #####
|
||||
# Si vous utilisez ftp, il n'est pas nécessaire d'indiquer la chaîne mirror/country.
|
||||
#d-i mirror/protocol string ftp
|
||||
d-i mirror/country string FR
|
||||
d-i mirror/http/hostname string ftp.fr.debian.org
|
||||
d-i mirror/http/directory string /debian
|
||||
d-i mirror/http/proxy string
|
||||
d-i mirror/http/mirror string ftp.fr.debian.org
|
||||
|
||||
# Distribution à installer.
|
||||
#d-i mirror/suite string testing
|
||||
d-i mirror/suite string unstable
|
||||
# Distribution à utiliser pour charger les composants de l'installateur (facultatif).
|
||||
#d-i mirror/udeb/suite string unstable
|
||||
## Pour pouvoir utiliser ces paramètres de debian-installer, il faut utiliser l'image iso "businesscard" qui est la seule image à proposer le choix de la version de Debian à installer (Stable, Testing ou Unstable).
|
||||
##Ça ne fonctionnera donc pas avec l'image netinst
|
||||
|
||||
|
||||
##### Fuseau horaire #####
|
||||
# Cette commande permet de régler l'horloge matérielle sur UTC :
|
||||
d-i clock-setup/utc boolean true
|
||||
|
||||
# Vous pouvez mettre toute valeur acceptée pour $TZ.
|
||||
# Voyez ce que contient /usr/share/zoneinfo/ pour les valeurs possibles.
|
||||
d-i time/zone string Europe/Paris
|
||||
|
||||
# La ligne suivante autorise l'utilisation de NTP pour régler l'horloge pendant l'installation :
|
||||
d-i clock-setup/ntp boolean true
|
||||
# Le serveur NTP à utiliser. Le serveur par défaut est presque toujours correct.
|
||||
#d-i clock-setup/ntp-server string 0.debian.pool.ntp.org
|
||||
# Merci à SYRTE (http://http://www.syrte.obspm.fr/) pour leur serveur ntp.
|
||||
d-i clock-setup/ntp-server string ntp-p1.obspm.fr
|
||||
|
||||
##### Installation système de base #####
|
||||
# Configurer APT pour empêcher l'installation des paquets recommandés.
|
||||
# Cette option qui peut conduire à un sytème incomplet est réservée des
|
||||
# utilisateurs expérimentés.
|
||||
#d-i base-installer/install-recommends boolean false
|
||||
|
||||
# Choix du générateur initramfs pour créer l'initrd des noyaux 2.6.
|
||||
#d-i base-installer/kernel/linux/initramfs-generators string initramfs-tools
|
||||
|
||||
# Version du noyau à installer (nom du paquet). Utilisez none si vous ne voulez pas
|
||||
# installer de noyau.
|
||||
d-i base-installer/kernel/image string linux-image-3.2.0-1-686-pae
|
||||
#d-i base-installer/kernel/image string @@KERNEL@@
|
||||
|
||||
##### Configuration APT #####
|
||||
# Vous pouvez installer des logiciels des distributions non-free et contrib.
|
||||
d-i apt-setup/non-free boolean true
|
||||
d-i apt-setup/contrib boolean true
|
||||
# Décommentez cette ligne si vous n'utilisez pas de miroir sur le réseau.
|
||||
#d-i apt-setup/use_mirror boolean false
|
||||
# Choisissez les services de mise à jour et les miroirs à utiliser.
|
||||
# Les valeurs ci-après sont les valeurs par défaut :
|
||||
#d-i apt-setup/services-select multiselect security, volatile
|
||||
#d-i apt-setup/security_host string security.debian.org
|
||||
#d-i apt-setup/volatile_host string volatile.debian.org
|
||||
|
||||
##### Choix des paquets #####
|
||||
tasksel tasksel/first multiselect standard
|
||||
# Si vous sélectionnez la tache desktop, vous pouvez installer les environnements kde ou xfce
|
||||
# au lieu de l'environnement gnome.
|
||||
#tasksel tasksel/desktop multiselect kde, xfce
|
||||
|
||||
# Paquets supplémentaires
|
||||
#d-i pkgsel/include string openssh-server build-essential
|
||||
# Mise à jour des paquets après debootstrap.
|
||||
# Valeurs autorisées : none, safe-upgrade, full-upgrade
|
||||
#d-i pkgsel/upgrade select none
|
||||
|
||||
# Certaines versions de l'installateur peuvent signaler les logiciels que vous avez installés
|
||||
# et ceux que vous utilisez. Par défaut, rien n'est signalé. Mais l'envoi de rapport
|
||||
# d'installation aide le projet à connaître les logiciels populaires.
|
||||
popularity-contest popularity-contest/participate boolean true
|
||||
|
||||
##### Installation programme d'amorçage #####
|
||||
# Le paramètre suivant est sans danger : il installe grub sur le
|
||||
# secteur d'amorçage principal s'il n'existe aucun autre système d'exploitation
|
||||
# sur la machine.
|
||||
d-i grub-installer/only_debian boolean true
|
||||
|
||||
# Si il y a d'autres os sur la machine, remplacer la ligne précédente par la suivante:
|
||||
#d-i grub-installer/with_other_os boolean true
|
||||
|
||||
##### Terminer l'installation #####
|
||||
# Pour éviter le dernier message disant que l'installation est terminée :
|
||||
d-i finish-install/reboot_in_progress note
|
||||
|
||||
# Pour empécher l'éjection du cédérom au moment du redémarrage,
|
||||
# c'est utile parfois :
|
||||
d-i cdrom-detect/eject boolean false
|
||||
|
||||
## Test de late_command
|
||||
#Le futur système ne se trouve pas à la racine, mais dans le répertoire /target/
|
||||
#Pour exécuter une commande au sein du système installé, il faut faire précéder la commande de "in-target".
|
||||
#d-i preseed/late_command string in-target wget -q -O /tmp/mon_beau_paquet.deb http://lien/mon/beau/paquet.deb; in-target dpkg -i /tmp/mon_beau_paquet.deb
|
||||
#in-target dpkg -i /target/root/teamviewer.deb
|
||||
#d-i preseed/late_command string in-target apt-get install htop
|
||||
#d-i preseed/late_command string apt-install htop
|
||||
#apt-install remplace "in-target apt-get install"
|
Loading…
Reference in New Issue