Installer Ubuntu depuis un serveur de dépôts (miroir)

Objectifs

  • Pouvoir installer une distribution Ubuntu (9.10, Karmic Koala) depuis le réseau local sans aucune intervention extérieure.
  • Le principe :
  • Boot PXE -> Lecture du fichier de pré-configuration -> installation automatisée depuis votre serveur de dépôts local

Pré-requis

  1. Bind
  2. DHCP
  3. PXE
  4. Miroir local Ubuntu
  5. Installation automatisée par fichier Preseed

Ajouter les référentiels à votre mirroir

<code>vi /mirror/apt-mirror.conf</code>
<code>
# Miroir Karmic Installer
deb http://archive.ubuntu.com/ubuntu/ karmic           main/debian-installer restricted/debian-installer universe/debian-installer multiverse/debian-installer
deb http://archive.ubuntu.com/ubuntu/ karmic-updates   main/debian-installer
#deb http://archive.ubuntu.com/ubuntu/ karmic-backports
deb http://archive.ubuntu.com/ubuntu/ karmic-security  main/debian-installer
deb http://archive.ubuntu.com/ubuntu/ karmic-proposed main/debian-installer
</code>
  • Mettre à jour le serveur de dépôts :
<code>apt-mirror /mirror/apt-mirror.conf</code>

Sources

Ajouter les l’option de boot à votre PXE

  • Editer le fichier default :
<code>vi /var/lib/tftboot/pxelinux.cfg/default</code>
  • Ajouter les lignes suivantes :
<code>
label Karmic Koala server Lan
MENU LABEL      Karmic Koala Desktop ^lan
kernel karmic/netboot.i386/linux
#karmic/install/netboot/ubuntu-installer/i386/linux
append vga=normal initrd=karmic/netboot.i386/initrd.gz ramdisk_size=16464 root=/dev/rd/0 rw preseed/url=http://monserveur.domain.tld/ubuntu/preseed/910.desktop.lan.cfg locale=fr_FR bootkbd=fr console-setup/layoutcode=fr console-setup/variantcode=nodeadkeys DEBCONF_DEBUG=5 netcfg/get_hostname=net-install netcfg/get_domain=workgroup--
</code>

Création du fichier preseed

  • A mettre depuis un endroit accessible par le serveur PXE (Sources) :
<code>
#
d-i mirror/suite string karmic
#
# Configuration reseau (obsolete si présence d'un 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
#
# Install source
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 monserveur.domain.tld
d-i	mirror/http/directory	string /ubuntu
d-i	mirror/suite		string karmic
# Choix des mirroirs
d-i apt-setup/services-select multiselect security
d-i apt-setup/security_host string monserveur.domain.tld
d-i apt-setup/security_path string /ubuntu
d-i	mirror/http/proxy	string
#
# 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 &lt;- 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
#
# select Terminer le partitionnement et appliquer les changements
d-i partman/confirm boolean true
tasksel tasksel/first multiselect ubuntu-desktop
#
# Creation des comptes utilisateur/root
#
d-i passwd/root-login boolean true
# Root password, either in clear text
d-i passwd/root-password password insecure
d-i passwd/root-password-again password insecure
# Compte local, utilisateur toto :
#
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 finish-install/reboot_in_progress       note
d-i pkgsel/update-policy select unattended-upgrades
# Ne fonctionne pas pour les versions antérieures a Intrepid
d-i user-setup/encrypt-home boolean false
#
# Apt setup.
base-config	apt-setup/uri_type	select http
# If you choose ftp or http, you'll be asked for a country and a mirror.
#base-config	apt-setup/country	select enter information manually
base-config	apt-setup/hostname	string monserveur.domain.tld
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
d-i pkgsel/include string openssh-server build-essential rsync less firmware-qlogic sudo cron-apt ntp host debsums devscripts pciutils ethtool
</code>

Tutoriels