Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 28/10/2008, à 12:53

jpoincheval

[info] intrepid ibex, installation par PXE, configuration qui marche

(Au fait, testez pas ça sur une machine avec un autre OS, ça flingue toutes les partitions)


Je poste ce message car je me suis pas mal arraché les cheveux pour arriver à faire marcher tout ça.
Ça n'a peut-être aucun intérêt, il y a sans doute une documentation à jour quelque part qui explique comment le faire, mais je n'ai pas su la trouver.

Donc, installation automatisée d'une ubuntu 8.10 par boot PXE. Ça n'est pas parfait mais déjà ça s'installe sans s'arrêter sottement pour attendre des réponses au clavier.

Je vous épargne la partie mise en place de DHCP/TFTP, c'est décrit partout et ça ne change pas au même rythme que le système d'installation d'ubuntu.

Le client reçoit son IP par un serveur DHCP, on souhaite que tout se déroule automatiquement, on ne veut rien confirmer.

Pour ne pas avoir à indiquer la langue, le clavier, et confirmer le hostname, il nous faut ajouter des paramètres au noyau. Donc dans pxelinux/default :

label u810
	kernel U810/i386/linux
	append initrd=U810/i386/initrd.gz preseed/url=http://mon-beau-serveur-http/linux/ubuntu/preseed-u810-i386.cfg locale=fr_FR bootkbd=fr console-setup/layoutcode=fr console-setup/variantcode=nodeadkeys DEBCONF_DEBUG=5 netcfg/get_hostname=s netcfg/get_domain=s

Tiens j'ai mis le clavier en nodeadkeys, faudrait que je change ça, à vous de voir.

Le fichier preseed-u810-i386.cfg :

#
### !!! TRÈS IMPORTANT !!!
#
# d-i expects there to be exactly one tab or space between variable type and variable value
# (any other space is seen as being part of the value) 
#
d-i mirror/suite string intrepid

#
# TCP/IP : attribué par le serveur DHCP
#
# on attribue des valeurs par défaut pour éviter de devoir confirmer
#
### c'est de la merde ! il faut mettre des paramètres sur la cmdline du kernel !
(Je laisse ce commentaire écrit sous le coup d'une certaine émotion : vous trouverez cet exemple partout sur le net, mais en fait ça ne sert à rien. Enfin, plus précisemment, ce n'est plus d'actualité.)
#
##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 manual
d-i mirror/http/hostname string ftp.votre-miroir-ubuntu.fr
d-i mirror/http/directory 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 mon-serveur-ntp.chezmoi.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 <- 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
# select Finish partitioning and write changes to disk
d-i partman/confirm boolean true

#
#
#
tasksel tasksel/first multiselect ubuntu-desktop

d-i passwd/root-login boolean true
# Root password, either in clear text
d-i passwd/root-password password babebibobu!
d-i passwd/root-password-again password babebibobu!
# or encrypted using an MD5 hash.
#d-i passwd/root-password-crypted password [MD5 hash]

#
# pas d'autre compte local
#
d-i passwd/make-user boolean false
#d-i passwd/user-fullname string Ubuntu User
#d-i passwd/username string ubu
#d-i passwd/user-password password ubu
#d-i passwd/user-password-again password ubu

d-i     finish-install/reboot_in_progress       note

### SOURCE : http://launchpadlibrarian.net/18682005/installation-guide_20080520ubuntu2_20080520ubuntu3.diff.gz
# Policy for applying updates. May be "none" (no automatic updates),
# "unattended-upgrades" (install security updates automatically), or
# "landscape" (manage system with Landscape).
#d-i pkgsel/update-policy select none
d-i pkgsel/update-policy select unattended-upgrades

#
# paquets supplémentaires
#
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

#
# ça ne fonctionne pas ci-dessous, la machine reste bloquée, ALT-F2 + CTRL-ALT-DEL et ça roule
#
d-i preseed/late_command string in-target mkdir /root/.ssh ; cd /root/.ssh ; curl -O http://mon-serveur-à-moi-que-j-ai/linux/ubuntu/authorized_keys ; sync || true

Voilà, c'est brut de fonderie, si j'ai le courage et si ça intéresse du monde je mettrais à jour quand ça sera plus propre.

Dernière modification par jpoincheval (Le 28/10/2008, à 12:54)

Hors ligne

#2 Le 31/10/2008, à 18:06

zizo81

Re : [info] intrepid ibex, installation par PXE, configuration qui marche

Bonjour,

Merci pour ce post très instructif.

Je suis moi-même en train de monter un serveur PXE et les éléments que tu donnes me sont très utiles.

Aurais-tu des liens de tutoriels détaillant toutes ces options de boot tant au niveau du fichier PXE que du fichier preseed.cfg?

Peux-t-on utiliser ces options pour installer une version antérieure (hardy ou dapper par exemple) ?

Autre question : l'installation d'apache est-elle obligatoire pour faire un serveur PXE ou peut-on contourner cet élément ?

Merci d'avance.

Hors ligne

#3 Le 06/11/2008, à 16:03

jpoincheval

Re : [info] intrepid ibex, installation par PXE, configuration qui marche

Salut,

pour le PXE, c'est expliqué partout sur le web, il faut avoir :
- un serveur dhcp,
- un serveur tftp,
- pxelinux.0, un fichier que l'oni trouve dans syslinux.

Le client démarre, envoie une requête sur le réseau, reçoit du serveur DHCP une adresse IP, un nom de serveur TFTP et un nom de fichier, charge ce fichier en TFTP, puis l'exécute. Ce fichier (pxelinux.0) charge le menu pxelinux.cfg et démarre l'un des systèmes décrits dans le menu.

On peut installer une version antérieure, mais je ne garantis pas le contenu de pressed.cfg.

PXE est complètement distinct du serveur HTTP, mais il me semble que c'est le moyen le plus simple de fournir les fichiers (preseed.cfg et paquets) pour l'installateur.

N'hésite pas à poser d'autres question, je devrais répondre plus rapidement que ces jours derniers.

Hors ligne

#4 Le 09/11/2008, à 11:43

kilog

Re : [info] intrepid ibex, installation par PXE, configuration qui marche

Depuis la version 8.04LTS j'ai ce probleme

Ton Post est donc SUPER

Sauf que tu ne dis pas comment tu as batis ton répertoire "U810/i386/linux", sous TFTP.

wink

#5 Le 10/11/2008, à 16:04

jpoincheval

Re : [info] intrepid ibex, installation par PXE, configuration qui marche

Voici les fichiers intéressants sur le serveur dhcp/tftp (les deux services sont sur la même machine, on pourrait envisager d'utiliser deux machines différentes si l'on souhaitait se compliquer la vie).

/tftpboot/PXE/pxelinux.cfg
/tftpboot/PXE/pxelinux.cfg/default

/tftpboot/PXE/U810/
/tftpboot/PXE/U810/i386
/tftpboot/PXE/U810/i386/initrd.gz
/tftpboot/PXE/U810/i386/linux

Les deux derniers fichiers (le noyau linux et l'image du disque de boor initrd.gz) viennent du cdrom ubuntu 8.10 alternate, dans /install/netboot/ubuntu-installer/i386/ :

dr-xr-xr-x  2 root root    4096 oct 21 01:02 boot-screens
-r--r--r--  1 root root 7585900 oct 21 01:02 initrd.gz                 <--
-r--r--r--  1 root root 2244144 oct 21 01:02 linux                       <--
-r--r--r--  1 root root   14776 oct 21 01:02 pxelinux.0
dr-xr-xr-x  2 root root    2048 oct 21 01:02 pxelinux.cfg

J'ai utilisé une RC quand j'ai copié les fichiers, les tailles ne correspondent peut être pas avec la release définitive.

Hors ligne

#6 Le 23/02/2009, à 20:50

mcbiatsi

Re : [info] intrepid ibex, installation par PXE, configuration qui marche

Super post merci, ca ma donné un grand coup de pouce !! wink


le presque n'est pas satisfaisant

Hors ligne

#7 Le 28/02/2009, à 10:54

Booloki

Re : [info] intrepid ibex, installation par PXE, configuration qui marche

Merci jpoincheval. J'arrivais pas à trouver les bonnes options a passer au kernel. Maintenant c'est nickel smile


Arch sur desktop - Debian sur server - FFOS sur smartphone - Rock sur enceintes
L'actualité du Libre en région Lorraine
@Booloki

Hors ligne

#8 Le 07/10/2009, à 23:25

franckydevil

Re : [info] intrepid ibex, installation par PXE, configuration qui marche

Hello et merci pour le fichier preseed (vraiment nikel pour une install depuis les dépots ubuntu) mais voulant accélérer l'installation je bute sur la connexion à mon serveur miroir, les tentatives se soldent par un message peu glorieux : Echec du téléchargement d'un fichier.
Configuration : DNS - DHCP - TFTP + srv mirror (apt-mirror + apache2).

pour plus de précision je soumets mon fichier preseed :

#
### !!! TRÈS IMPORTANT !!!
#
# d-i expects there to be exactly one tab or space between variable type and variable value
# (any other space is seen as being part of the value) 
#
# Pour indiquer à la fois la langue et le pays :
d-i	debian-installer/locale string	fr_FR
tasksel tasksel/first multiselect ubuntu-desktop
##############################################################################################
# TCP/IP : attribué par le serveur DHCP
#
# on attribue des valeurs par défaut pour éviter de devoir confirmer
#
# Static network configuration.
d-i netcfg/get_nameservers string @IP-DNS
d-i netcfg/get_ipaddress string @IP
d-i netcfg/get_netmask string 255.255.255.0
d-i netcfg/get_gateway string @IP-Paserelle
d-i netcfg/confirm_static boolean true

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




# If you select ftp, the mirror/country string does not need to be set.
d-i mirror/protocol string http
d-i mirror/country string manual
d-i mirror/http/hostname string @IP-Mirror
d-i mirror/http/directory string /ubuntu
d-i mirror/http/proxy string

# Alternatively: by default, the installer uses CC.archive.ubuntu.com where
# CC is the ISO-3166-2 code for the selected country. You can preseed this
# so that it does so without asking.
d-i mirror/http/mirror select @IP-Mirror

# Suite to install.
d-i mirror/suite string jaunty
# Suite to use for loading installer components (optional).
d-i mirror/udeb/suite string jaunty
# Components to use for loading installer components (optional).
d-i mirror/udeb/components multiselect main, restricted



#
# Install source
#
d-i mirror/http/mirror select @IP-Mirror
apt-mirror-setup apt-setup/non-free boolean false
apt-mirror-setup apt-setup/use_mirror boolean true
apt-mirror-setup apt-setup/restricted boolean true
apt-mirror-setup apt-setup/universe boolean true
apt-mirror-setup apt-setup/multiverse boolean true
apt-mirror-setup apt-setup/contrib boolean false
apt-mirror-setup apt-setup/backports boolean false

#
# 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 <- 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
# select Finish partitioning and write changes to disk
d-i partman/confirm boolean true

tasksel tasksel/first multiselect ubuntu-desktop

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
# or encrypted using an MD5 hash.
d-i passwd/root-password-crypted password 123456

#
# pas d'autre compte local
#
d-i passwd/make-user boolean true
d-i passwd/user-fullname string fd
d-i passwd/username string fd
#d-i passwd/user-password password insecure
#d-i passwd/user-password-again password insecure
d-i passwd/user-password-crypted password 123456
#d-i passwd/user-password-again-crypted password 123456

d-i     finish-install/reboot_in_progress       note

### SOURCE : http://launchpadlibrarian.net/18682005/installation-guide_20080520ubuntu2_20080520ubuntu3.diff.gz
# Policy for applying updates. May be "none" (no automatic updates),
# "unattended-upgrades" (install security updates automatically), or
# "landscape" (manage system with Landscape).
#d-i pkgsel/update-policy select none
d-i pkgsel/update-policy select unattended-upgrades

# Set to true if you want to encrypt the first user's home directory.
# Ne fonctionne pas pour les versions antérieures a Intrepid
d-i user-setup/encrypt-home boolean false

#
# paquets supplémentaires
#
d-i pkgsel/include string vim
d-i pkgsel/include string ssh

Aurais-je mal renseigné les directives ...? je le pense mais où ?

Dernière modification par franckydevil (Le 07/10/2009, à 23:28)

Hors ligne

#9 Le 13/10/2009, à 12:28

franckydevil

Re : [info] intrepid ibex, installation par PXE, configuration qui marche

Je me réponds :
En fait j'ai suivi le tuto http://doc.ubuntu-fr.org/netboot et je me plantais lamentablement sur le CD à utiliser : Alternate en lieu et place du Desktop (que j'ai supprimé).
Tests d'installation avec 8.10 et 9.04 ok.
Encore merci pour le tuto de Lo_pescofi et les infos complémentaires de jpoincheval.
Les installations peuvent démarrer...:P

Hors ligne