samedi 9 mars 2013

#Ubuntu mini #netinstall #Automatisation

FAI - Fully Automatic Installation


Manuel (Fr)

Mini CD

DEBIAN
32 Bits (22Mb): http://d-i.debian.org/daily-images/i386/daily/netboot/mini.iso
64 Bits (25Mb): http://d-i.debian.org/daily-images/amd64/daily/netboot/mini.iso
UBUNTU Netboot  Images

SCRIPT POUR TELECHARGER LA DERNIERE UBUNTU NETINSTALL :
#!/bin/bash
MIRROR=mirrors.us.kernel.org
ROOTDIR=/home/image/boot
for REL in trusty saucy raring quantal precise oneiric natty maverick lucid
do
for ARCH in i386 amd64
do
echo "Sync'ing Ubuntu $REL / $ARCH..."
mkdir -p $ROOTDIR/Ubuntu/$REL/$ARCH/
cd $ROOTDIR/Ubuntu/$REL/$ARCH/ && wget -N http://$MIRROR/pub/ubuntu/dists/$REL/main/installer-$ARCH/current/images/netboot/ubuntu-installer/$ARCH/initrd.gz http://$MIRROR/pub/ubuntu/dists/$REL/main/installer-$ARCH/current/images/netboot/ubuntu-installer/$ARCH/linux
done
done
Script pour Debian netinstall

Automatisation de l'installation et pré-configuration sur Debian

CustomPostInstallScript

GenPreseed 


Notes pour une installation d Ubuntu automatisée

1) Pour la personnalisation du fichier preseed.cfg on peut utiliser l'outil debconf-get-selections.
- doc ubuntu actuelle ( / v. 10.10)
- doc ubuntu future (à tester après la sortie officielle de la v. 11.04)
- exemple Ubuntu 10.04 AMD64 Server en anglais

Exemple :

#
# Configuration du fichier preseed :
#
# Configuration reseau (obsolete en si utilisation du DHCP)
#d-i netcfg/get_hostname string unassigned-hostname
#d-i netcfg/get_domain string unassigned-domain
#d-i netcfg/get_hostname seen true
#d-i netcfg/get_domain seen true
#
# Choix du noyau a installer
# Dans le cas d'un serveur 9.10, installer linux-generic-pae :
#d-i base-installer/kernel/override-image string linux-generic-pae
#
# Source d'installation (miroir)
#
d-i mirror/country string fr
d-i mirror/http/countries select fr
d-i mirror/protocol select http
d-i mirror/http/hostname string fr.archive.ubuntu.com
d-i mirror/http/directory string /ubuntu
# Nom de la distribution installée
d-i mirror/suite string lucid
# Choix des miroirs security :
d-i apt-setup/services-select multiselect security
d-i apt-setup/security_host string fr.archive.ubuntu.com
d-i apt-setup/security_path string /ubuntu
d-i mirror/http/proxy string
#
# langue
#
d-i console-setup/ask_detect boolean false
d-i console-setup/layoutcode string fr
d-i debian-installer/locale string fr_fr
d-i console-keymaps-usb/keymap select nodeadkeys
#
# horloge
#
d-i clock-setup/utc boolean true
d-i time/zone string Europe/Paris
d-i clock-setup/ntp boolean true
d-i clock-setup/ntp-server ntp.free.fr
#
# partitionnement
#
d-i partman-auto/disk string /dev/sda
d-i partman-auto/method string regular
#d-i partman-auto/purge_lvm_from_device boolean true # pour les anciennes versions, en 8.04 cf ligne ci-dessous
d-i partman-lvm/device_remove_lvm boolean true
d-i partman-lvm/confirm boolean true
d-i partman/confirm_write_new_label boolean true
d-i partman/choose_partition select
# Terminer le partitionnement et appliquer les changements
d-i partman/confirm boolean true
#
# Détermine le type d'installation
#
tasksel tasksel/first multiselect ubuntu-desktop
#tasksel tasksel/first multiselect standard
#tasksel tasksel/first multiselect ubuntu-desktop
#tasksel tasksel/first multiselect kubuntu-desktop
#tasksel tasksel/first multiselect edubuntu-desktop
#tasksel tasksel/first multiselect xubuntu-desktop
#tasksel tasksel/first multiselect dns-server
#tasksel tasksel/first multiselect lamp-server ##(installation d'un serveur avec Apache, MySQL et PHP)
#
# Creation des comptes utilisateur/root
#
#d-i passwd/root-login boolean true
# Mot de passe root en clair (insecure) :
#d-i passwd/root-password password insecure
#d-i passwd/root-password-again password insecure
# Mot de passe root crypté en MD5 :
#d-i passwd/root-password-crypted password $1$hHHfJXII$0eStKtVO310d1RyvnCYdQ0
#
# Création du compte local : Toto
# Si le compte root est déjà créé, l'utilisateur ne pourra pas faire de sudo
#
d-i passwd/make-user boolean true
d-i passwd/user-fullname string Toto
d-i passwd/username string toto
d-i passwd/user-password password insecure
d-i passwd/user-password-again password insecure
#d-i passwd/user-password-crypted password $1$hHHfJXII$0eStKtVO310d1RyvnCYdQ0
#d-i passwd/user-password-again-crypted password $1$hHHfJXII$0eStKtVO310d1RyvnCYdQ0
#
# Pour éviter le dernier message disant que l'installation est terminée :
d-i finish-install/reboot_in_progress note
#
# Politique pour l'application des mises à jour. Réglé sur :
# - "none" (pas de mise à jour automatique)
# - "unattended-upgrades" (installation des mises à jour de sécurité automatiquement)
# - "landscape" (mise à jour gérées depuis Landscape)
d-i pkgsel/update-policy select unattended-upgrades
# Permet d'encrypter le répertoire home (ne fonctionne pas pour les versions antérieures a Intrepid) :
d-i user-setup/encrypt-home boolean false
#
# Apt setup.
#
# Configure les branches qui seront actives multiverse, universe, security
base-config apt-setup/uri_type select http
#base-config apt-setup/country select enter information manually
base-config apt-setup/hostname string fr.archive.ubuntu.com
base-config apt-setup/directory string /ubuntu
base-config apt-setup/another boolean true
base-config apt-setup/universe boolean true
base-config apt-setup/multiverse boolean true
base-config apt-setup/security-updates boolean true
#
# paquets supplémentaires qui seront installés :
#
d-i pkgsel/include string libpam-mount
d-i pkgsel/include string curl
d-i pkgsel/include string debconf-utils
d-i pkgsel/include string openssh-server
d-i pkgsel/include string vim
d-i pkgsel/include string ssh

Exemples tirés de Debian

1) Voir guide Debian
2) sources '1' + '2' + '3'
# Locales
d-i debian-installer/locale select fr_FR.UTF-8

# Keyboard
d-i console-keymaps-at/keymap select fr-latin9
d-i keyboard-configuration/xkb-keymap select fr(latin9)

# Network
d-i netcfg/choose_interface select auto
d-i netcfg/get_domain string unassigned-domain

# Miroir + Proxy
d-i mirror/country string manual
d-i mirror/http/hostname string mymirror.domain.tld
d-i mirror/http/directory string /debian
d-i mirror/http/proxy string

# Distribution a installer.
d-i mirror/suite string squeeze
d-i mirror/udeb/suite string squeeze

# Compte root + 1er compte utilisateur
d-i passwd/root-password-crypted password $1$qCP/fKPR$1234PZ39vnxJlWC0sqM76b0
d-i passwd/user-fullname string bonin
d-i passwd/username string bonin
d-i passwd/user-password-crypted password $1$lmSKuibG$cDMRxTiPUI1123tQM7igMQ1

# Clock
d-i clock-setup/utc boolean true
d-i time/zone string Europe/Paris
d-i clock-setup/ntp boolean true
d-i clock-setup/ntp-server string

# Partitionning
# Remove any existing LVM traces:
d-i partman-auto/method string lvm
d-i partman-lvm/device_remove_lvm boolean true
d-i partman-md/device_remove_md boolean true
d-i partman-lvm/confirm boolean true

d-i partman-auto-lvm/new_vg_name string vg01

# Préparation du schéma de partitionnement avec une partition /boot de 256Mo,
# le reste de la partition en LVM, puis dans ce LVM : / de 4Go, /var de 4Go et le swap avec le reste
d-i partman-auto/expert_recipe string   \
boot-root ::                    \
256 1000000 256 ext3    \
$primary{ }             \
$bootable{ }            \
method{ format }        \
format{ }               \
use_filesystem{ }       \
filesystem{ ext3 }      \
mountpoint{ /boot }     \
.                       \
100 100000 10000000 lvm \
$primary{ }             \
$defaultignore{ }       \
method{ lvm }           \
vg_name{ vg01 }         \
.                       \
4352 10000 4352 ext3    \
$lvmok{ }               \
in_vg{ vg01 }           \
lv_name{ racine }       \
method{ format }        \
format{ }               \
use_filesystem{ }       \
filesystem{ ext3 }      \
mountpoint{ / }         \
.                       \
4352 10000 4352 ext3    \
$lvmok{ }               \
in_vg{ vg01 }           \
lv_name{ var }          \
method{ format }        \
format{ }               \
use_filesystem{ }       \
filesystem{ ext3 }      \
mountpoint{ /var }      \
.                       \
100% 10000 100% linux-swap \
$lvmok{ }               \
in_vg{ vg01 }           \
lv_name{ swap }         \
method{ swap }          \
format{ }               \
.

d-i partman-partitioning/confirm_write_new_label boolean true
d-i partman/choose_partition select finish
d-i partman/confirm boolean true
d-i partman/confirm_nooverwrite boolean true

# Apt
d-i apt-setup/services-select multiselect security
d-i apt-setup/non-free boolean true
d-i apt-setup/contrib boolean true
d-i apt-setup/security_host string mymirror.mipih.net/security

# Ne pas participer au programme de recolte d'informations
popularity-contest popularity-contest/participate boolean false

# Grub
# Auto install grub if this is the only one system.
d-i grub-installer/only_debian boolean true

# Standard minimal system
tasksel tasksel/first multiselect standard

# Ajout de paquets supplementaires
d-i pkgsel/include string openssh-server build-essential

# End
# Reboot automatically
d-i finish-install/reboot_in_progress note



puis reconstruction du CD :

$ mkdir debian-600-adm64
$ bsdtar -C ./debian-600-adm64 -xf ./debian-600-amd64-netinst.iso
$ cd debian-600-adm64
$ cp install.amd/initrd.gz install.amd/initrd.gz.old
$ mkdir initrd
$ cd initrd
$ gunzip -c ../install.amd/initrd.gz.old | cpio -id
$ cp /path/to/preseed.cfg .
$ find . | cpio --create --format='newc' | gzip  > ../initrd.gz
$ cd ..
$ mv initrd.gz install.amd/
$ rm -Rf initrd && rm -Rf install.amd/initrd.gz.old
$ md5sum `find ! -name "md5sum.txt" ! -path "./isolinux/*" ! -name "debian" -follow -type f` > ./md5sum.txt
$ cd ..
$ mkisofs -o  ./debian-600-amd64-netinst-custom.iso \
-V di`date -u +%m%d%H%M%S` \
-r -J -no-emul-boot -boot-load-size 4 -boot-info-table \
-b isolinux/isolinux.bin -c isolinux/boot.cat \
./debian-505-amd64

Aucun commentaire:

Enregistrer un commentaire

Archives du blog