Bonjour à tous,
Je vais tenter de vous exposer mon soucis de façon claire et détaillée…
Je me suis lancé dans l’installation d’un serveur PXE (sous debian etch) pour l’installation par le réseau afin de me faciliter la tache lors d’installation de machines debian etch à la chaine.
Jusque là pas de problème, j’utilise dhcp3-server, tftpd-hpa et j’ai téléchagargé les fichiers necessaires, tout cela fonctionne parfaitement, j’arrive à faire l’installation sans soucis.
Pour encore plus de facilité, j’ai décidé de mettre en place une installation automatique au maximum, j’ai donc tenter de faire cela avec kickstart, dans un premier temps, puis preseed.
Avec kickstart j’ai généré un fichier de préconfiguration grâce à l’interface graphique proposée par le logiciel.
Avec preseed, j’ai modifié légerement le fichier d’exemple, simplement dans le but de tester le bon fonctionnement de cette méthode…
Malheureusement dans les 2 cas, cela ne fonctionne pas, l’installation de debian etch se fait comme si je n’avais pas spécifié de fichier de préconfiguration… j’ai donc lancé un tcpdump sur la machine qui héberge mes scripts KS.cfg et preseed.cfg afin de voir si une requête pour demander le fichier est envoyée… et je ne constate rien du tout de ce style… Le boot ignore completement ma demande de prendre en compte le fichier de préconfiguration.
J’ai tenté pas mal de choses dans le fichier default de pxelinux.cfg mais voici celui qui est le plus simple et qui me parait cohérent :
[code]DISPLAY debian/etch/boot-screens/boot.txt
F1 debian/etch/boot-screens/f1.txt
F2 debian/etch/boot-screens/f2.txt
F3 debian/etch/boot-screens/f3.txt
F4 debian/etch/boot-screens/f4.txt
F5 debian/etch/boot-screens/f5.txt
F6 debian/etch/boot-screens/f6.txt
F7 debian/etch/boot-screens/f7.txt
F8 debian/etch/boot-screens/f8.txt
F9 debian/etch/boot-screens/f9.txt
F0 debian/etch/boot-screens/f10.txt
DEFAULT install
LABEL install
KERNEL debian/etch/linux
APPEND initrd=debian/etch/initrd.gz ks=http://10.0.27.240/debian/ks.cfg –
PROMPT 1
TIMEOUT 0
[/code]
[code]DISPLAY debian/etch/boot-screens/boot.txt
F1 debian/etch/boot-screens/f1.txt
F2 debian/etch/boot-screens/f2.txt
F3 debian/etch/boot-screens/f3.txt
F4 debian/etch/boot-screens/f4.txt
F5 debian/etch/boot-screens/f5.txt
F6 debian/etch/boot-screens/f6.txt
F7 debian/etch/boot-screens/f7.txt
F8 debian/etch/boot-screens/f8.txt
F9 debian/etch/boot-screens/f9.txt
F0 debian/etch/boot-screens/f10.txt
DEFAULT install
LABEL install
KERNEL debian/etch/linux
APPEND initrd=debian/etch/initrd.gz preseed/url=http://10.0.27.240/debian/preseed.cfg –
PROMPT 1
TIMEOUT 0
[/code]
Dans le /var/log/syslog de la machine en cours d’installation, j’ai bien la ligne APPEND qui apparait et elle ne me retourne aucune erreur.
Voici aussi les fichiers ks.cfg et preseed.cfg :
[code]#Generated by Kickstart Configurator
#platform=x86
#System language
lang fr_FR
#Language modules to install
langsupport fr_FR
#System keyboard
keyboard fr
#System mouse
mouse
#System timezone
timezone Europe/Paris
#Root password
rootpw --iscrypted $1$yo6oTI.T$nTLMFYTZmfwtyjZ075lxb1
#Initial user
user secours --fullname “secours” --iscrypted --password $1$HjAxooKS$f/YYPMOikf7oDpihTt0Er1
#Reboot after installation
reboot
#Install OS instead of upgrade
install
#Use Web installation
url --url http://10.0.27.240/debian/
#System bootloader configuration
bootloader --location=mbr
#Clear the Master Boot Record
zerombr yes
#Partition clearing information
clearpart --all --initlabel
#Disk partitioning information
part /boot --fstype ext2 --size 600
part / --fstype ext2 --size 10000
part /is --fstype ext2 --size 15000
part /datas00 --fstype ext2 --size 12000
part swap --size 2000
#System authorization infomation
auth --useshadow --enablemd5
#Network information
network --bootproto=static --ip=10.0.27.78 --netmask=255.255.255.0 --gateway=10.0.27.1 --nameserver=213.244.0.15 --device=eth0
#Firewall configuration
firewall --disabled
#Do not configure the X Window System
skipx
[/code]
[code]#### Contents of the preconfiguration file
Localization
Locale sets language and country.
d-i debian-installer/locale string fr_FR
Keyboard selection.
#d-i console-tools/archs select at
d-i console-keymaps-at/keymap select fr
Example for a different keyboard architecture
#d-i console-keymaps-usb/keymap select mac-usb-us
Network configuration
netcfg will choose an interface that has link if possible. This makes it
skip displaying a list if there is more than one interface.
d-i netcfg/choose_interface select auto
To pick a particular interface instead:
#d-i netcfg/choose_interface select eth1
If you have a slow dhcp server and the installer times out waiting for
it, this might be useful.
#d-i netcfg/dhcp_timeout string 60
If you prefer to configure the network manually, uncomment this line and
the static network configuration below.
#d-i netcfg/disable_dhcp boolean true
If you want the preconfiguration file to work on systems both with and
without a dhcp server, uncomment these lines and the static network
configuration below.
#d-i netcfg/dhcp_failed note
#d-i netcfg/dhcp_options select Configure network manually
Static network configuration.
#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
Any hostname and domain names assigned from dhcp take precedence over
values set here. However, setting the values still prevents the questions
from being shown, even if values come from dhcp.
d-i netcfg/get_hostname string unassigned-hostname
d-i netcfg/get_domain string unassigned-domain
Disable that annoying WEP key dialog.
d-i netcfg/wireless_wep string
The wacky dhcp hostname that some ISPs use as a password of sorts.
#d-i netcfg/dhcp_hostname string radish
Mirror settings
If you select ftp, the mirror/country string does not need to be set.
#d-i mirror/protocol string ftp
d-i mirror/country string enter information manually
d-i mirror/http/hostname string http.us.debian.org
d-i mirror/http/directory string /debian
d-i mirror/http/proxy string
Suite to install.
#d-i mirror/suite string testing
Suite to use for loading installer components (optional).
#d-i mirror/udeb/suite string testing
Partitioning
If the system has free space you can choose to only partition that space.
Note: this must be preseeded with a localized (translated) value.
#d-i partman-auto/init_automatically_partition \
select Guided - use the largest continuous free space
Alternatively, you can specify a disk to partition. The device name
can be given in either devfs or traditional non-devfs format.
For example, to use the first disk:
d-i partman-auto/disk string /dev/discs/disc0/disc
In addition, you’ll need to specify the method to use.
The presently available methods are: “regular”, “lvm” and “crypto”
d-i partman-auto/method string lvm
If one of the disks that are going to be automatically partitioned
contains an old LVM configuration, the user will normally receive a
warning. This can be preseeded away…
d-i partman-auto/purge_lvm_from_device boolean true
And the same goes for the confirmation to write the lvm partitions.
d-i partman-lvm/confirm boolean true
You can choose from any of the predefined partitioning recipes.
Note: this must be preseeded with a localized (translated) value.
d-i partman-auto/choose_recipe
select All files in one partition (recommended for new users)
#d-i partman-auto/choose_recipe \
select Separate /home partition
#d-i partman-auto/choose_recipe \
select Separate /home, /usr, /var, and /tmp partitions
Or provide a recipe of your own…
The recipe format is documented in the file devel/partman-auto-recipe.txt.
If you have a way to get a recipe file into the d-i environment, you can
just point at it.
#d-i partman-auto/expert_recipe_file string /hd-media/recipe
If not, you can put an entire recipe into the preconfiguration file in one
(logical) line. This example creates a small /boot partition, suitable
swap, and uses the rest of the space for the root partition:
#d-i partman-auto/expert_recipe string \
boot-root :: \
40 50 100 ext3 \
$primary{ } $bootable{ } \
method{ format } format{ } \
use_filesystem{ } filesystem{ ext3 } \
mountpoint{ /boot } \
. \
500 10000 1000000000 ext3 \
method{ format } format{ } \
use_filesystem{ } filesystem{ ext3 } \
mountpoint{ / } \
. \
64 512 300% linux-swap \
method{ swap } format{ } \
.
This makes partman automatically partition without confirmation.
d-i partman/confirm_write_new_label boolean true
d-i partman/choose_partition
select Finish partitioning and write changes to disk
d-i partman/confirm boolean true
Clock and time zone setup
Controls whether or not the hardware clock is set to UTC.
d-i clock-setup/utc boolean true
You may set this to any valid setting for $TZ; see the contents of
/usr/share/zoneinfo/ for valid values.
d-i time/zone string US/Eastern
Apt setup
You can choose to install non-free and contrib software.
#d-i apt-setup/non-free boolean true
#d-i apt-setup/contrib boolean true
Uncomment this if you don’t want to use a network mirror.
#d-i apt-setup/use_mirror boolean false
Uncomment this to avoid adding security sources, or
add a hostname to use a different server than security.debian.org.
#d-i apt-setup/security_host string
Additional repositories, local[0-9] available
#d-i apt-setup/local0/repository string \
deb http://local.server/debian stable main
#d-i apt-setup/local0/comment string local server
Enable deb-src lines
#d-i apt-setup/local0/source boolean true
URL to the public key of the local repository; you must provide a key or
apt will complain about the unauthenticated repository and so the
sources.list line will be left commented out
#d-i apt-setup/local0/key string http://local.server/key
By default the installer requires that repositories be authenticated
using a known gpg key. This setting can be used to disable that
authentication. Warning: Insecure, not recommended.
#d-i debian-installer/allow_unauthenticated string true
Account setup
Skip creation of a root account (normal user account will be able to
use sudo).
#d-i passwd/root-login boolean false
Alternatively, to skip creation of a normal user account.
#d-i passwd/make-user boolean false
Root password, either in clear text
#d-i passwd/root-password password r00tme
#d-i passwd/root-password-again password r00tme
or encrypted using an MD5 hash.
#d-i passwd/root-password-crypted password [MD5 hash]
To create a normal user account.
#d-i passwd/user-fullname string Debian User
#d-i passwd/username string debian
Normal user’s password, either in clear text
#d-i passwd/user-password password insecure
#d-i passwd/user-password-again password insecure
or encrypted using an MD5 hash.
#d-i passwd/user-password-crypted password [MD5 hash]
Base system installation
Select the initramfs generator used to generate the initrd for 2.6 kernels.
#d-i base-installer/kernel/linux/initramfs-generators string yaird
Boot loader installation
Grub is the default boot loader (for x86). If you want lilo installed
instead, uncomment this:
#d-i grub-installer/skip boolean true
This is fairly safe to set, it makes grub install automatically to the MBR
if no other operating system is detected on the machine.
d-i grub-installer/only_debian boolean true
This one makes grub-installer install to the MBR if it also finds some other
OS, which is less safe as it might not be able to boot that other OS.
d-i grub-installer/with_other_os boolean true
Alternatively, if you want to install to a location other than the mbr,
uncomment and edit these lines:
#d-i grub-installer/only_debian boolean false
#d-i grub-installer/with_other_os boolean false
#d-i grub-installer/bootdev string (hd0,0)
To install grub to multiple disks:
#d-i grub-installer/bootdev string (hd0,0) (hd1,0) (hd2,0)
Package selection
tasksel tasksel/first multiselect standard, desktop
#tasksel tasksel/first multiselect standard, web-server
#tasksel tasksel/first multiselect standard, kde-desktop
Individual additional packages to install
#d-i pkgsel/include string openssh-server build-essential
Some versions of the installer can report back on what software you have
installed, and what software you use. The default is not to report back,
but sending reports helps the project determine what software is most
popular and include it on CDs.
#popularity-contest popularity-contest/participate boolean false
Finishing up the first stage install
Avoid that last message about the install being complete.
d-i finish-install/reboot_in_progress note
This will prevent the installer from ejecting the CD during the reboot,
which is useful in some situations.
#d-i cdrom-detect/eject boolean false
X configuration
X can detect the right driver for some cards, but if you’re preseeding,
you override whatever it chooses. Still, vesa will work most places.
#xserver-xorg xserver-xorg/config/device/driver select vesa
A caveat with mouse autodetection is that if it fails, X will retry it
over and over. So if it’s preseeded to be done, there is a possibility of
an infinite loop if the mouse is not autodetected.
#xserver-xorg xserver-xorg/autodetect_mouse boolean true
Monitor autodetection is recommended.
xserver-xorg xserver-xorg/autodetect_monitor boolean true
Uncomment if you have an LCD display.
#xserver-xorg xserver-xorg/config/monitor/lcd boolean true
X has three configuration paths for the monitor. Here’s how to preseed
the “medium” path, which is always available. The “simple” path may not
be available, and the “advanced” path asks too many questions.
xserver-xorg xserver-xorg/config/monitor/selection-method
select medium
xserver-xorg xserver-xorg/config/monitor/mode-list
select 1024x768 @ 60 Hz
Preseeding other packages
Depending on what software you choose to install, or if things go wrong
during the installation process, it’s possible that other questions may
be asked. You can preseed those too, of course. To get a list of every
possible question that could be asked during an install, do an
installation, and then run these commands:
debconf-get-selections --installer > file
debconf-get-selections >> file
Advanced options
Running custom commands during the installation
d-i preseeding is inherently not secure. Nothing in the installer checks
for attempts at buffer overflows or other exploits of the values of a
preconfiguration file like this one. Only use preconfiguration files from
trusted locations! To drive that home, and because it’s generally useful,
here’s a way to run any shell command you’d like inside the installer,
automatically.
This first command is run as early as possible, just after
preseeding is read.
#d-i preseed/early_command string anna-install some-udeb
This command is run just before the install finishes, but when there is
still a usable /target directory. You can chroot to /target and use it
directly, or use the apt-install and in-target commands to easily install
packages and run commands in the target system.
#d-i preseed/late_command string apt-install zsh; in-target chsh -s /bin/zsh
[/code]
A noter que j’ai mis les droits 777 et +x à ces 2 fichiers.
Merci d’avance pour vos réponses