Installation automatique

Bonjour à tous,

Nous sommes en train de mettre un place un système de déploiement de debian.
Tout va bien avec le fichier preseed, pour ça c’est bon.
Par contre, comme on installera entre autre sur des machines virtuelles hyper-V, on a compilé notre propre kernel qui inclut les drivers pour hyper-V.
Pour économiser de la bande passante, on a mis en place un apt-cacher, qui marche très bien.
Par contre, on aimerait bien que notre kernel customisé soit installé pendant la procédure d’installation.
Pour l’instant, je n’ai rien trouvé.
Si vous avez une idée de comment on peut rajouter des paquets à installer dans un preseed, sans qu’ils soient dispo sur un repo, je suis intéressé (à la limite, je peux faire un repo supplémentaire, qui contiendrais le kernel, mais dans ce cas là, est-ce qu’il doit remplacer le apt-cacher?)

Salut =)

Alors dans les faits, la démarche suivante devrait te correspondre:
[ul][li]Télécharger ton paquet (wget, scp ou autre).[/li]
[li]Installer le paquet.[/li][/ul]
Pour se faire, la directive preseed/late_command devrait t’être utile. Ça permet d’exécuter une dernière commande à la fin de l’installeur.
Exemple pour ton cas:

[Contenu de ton fichier preseed.cfg] ... d-i preseed/late_command string in-target wget -q -O /target/tmp/mon_paquet.deb http://lien/paquet.deb; in-target dpkg -i /target/tmp/mon_paquet.deb
Si t’as déjà étudié le preseed, tu dois déjà savoir que le “futur” système ne se trouve pas à la racine, mais dans le répertoire /target/, donc une autre solution pourrait-être de chrooter l’installer dans /target pour la fin puis d’exécuter les commandes qui vont bien:

d-i preseed/late_command string chroot /target; \ wget -q -O NOM_FICHIER http://lien/qui/va/bien; dpkg -i NOM_FICHIER

Petit point en passant en admettant que tu choisisses l’option d’un dépôt (ou même si tu veux installer simplement un paquet), tu peux faire:

d-i preseed/late_command string apt-install PAQUET
[b]OU[/b]
d-i preseed/late_command string in-target apt-get install PAQUET
[b]OU[/b]
d-i preseed/late_command string chroot /target; apt-get install PAQUET

Et cette commande peut aussi être utilisée pour modifier des fichiers (/etc/fstab, /etc/apt/sources.list, …) et toutes autres choses …

Redis si ça t’as servis :wink:

J’ai essayé de mettre ça en place, mais ça n’a pas l’air de marcher.

voilà ce que j’ai fait:

d-i preseed/late_command string in-target echo "deb http://astarte.lpl.grp/apt/\ squeeze main" > /etc/apt/sources.list.d/limelogic.list; in-target apt-get upda\ te; in-target apt-get install linux-image-2.6.38-hyper-v linux-headers-2.6.38-h\ yper-v emacs23-nox; apt-install zsh; in-target chsh -s /bin/zsh

Dans un premier temps, j’avais essayé de rajouter notre repo avec d-i apt-setup/local0/repository string mais ça le rajoutait uniquement au redémarrage, pas pour l’installation avec late_command.

L’installation ne te dis rien de particulier? Normalement quand une late_command n’est pas correcte, d-i affiche un message d’erreur sur fond rouge. Que dis /var/log/syslog?
Pendant l’installation, tu peux aussi accéder à la ligne de commande avec les tty2 et 3 ou le syslog sur tty4. Si les combinaisons ctrl+alt+F[1-4] ne fonctionnent pas, essaye alt+flèche gauche/droite. Cela devrait te permettre d’explorer un peu le système avant le reboot.

Une fois la machine démarrée, ça donne quoi? Le fichier “limelogic.list” est présent? Shell zsh?

Hum question (potentiellement) bête, il y a bien un espace entre http://astarte.lpl.grp/apt/ et squeeze???

[quote=“Edzilla”]

d-i preseed/late_command string in-target echo "deb http://astarte.lpl.grp/apt/\ squeeze main" > /etc/apt/sources.list.d/limelogic.list; ...[/quote]
Je pense que c’est plutôt la balise “code” du forum qui n’accepte pas un espace en début de ligne mais bon, on sait jamais ^^

Je n’ai pas d’affichage particulier dans la console de base, mais je n’ai pas encore regardé les autres tty.

Est-ce qu’après le premier redémarrage il y a un fichier de log de l’install quelque part?

Après installation, zsh est bien le shell par défaut, mais le limelogic.list n’est pas présent…

L’espace existe bien entre astarte.lpl.grp/apt/ et squeeze, je pense qu’effectivement c’est le forum qui n’aime pas qu’une ligne commence par un espace.

Je vais faire d’autre tests et regarder les erreurs, et je te tiens au courant.

Pour le “résumé” de l’installation, tu peux faire un petit:

Au besoin précédé de:

En lisant à la volée les logs dans la quatrième console, j’ai remarqué que

essayait de créer limelogic.list dans /etc/apt/sources.list.d/limelogic.list et non pas /target/etc/apt/sources.list.d/limelogic.list.

Bizarre, mais admettons, j’ai donc rajouté le /target devant, et c’est passé.
Par contre, évidemment, ensuite, il voyait le paquet comme non authentifié par GPG, donc j’ai essayé ça:

Ce qui ne marche pas mieux.
J’ai finalement essayé:

et là ça fonctionne!
Mais (car il y a toujours un mais :slightly_smiling: ) évidemment, au reboot, il ne connait toujours pas la clef GPG de mon repo…
J’y suis presque…
Est-ce que tu as une idée de la méthode pour lui faire accepter la clef gpg pendant l’install? (ou de ce qui est faux avec ce que j’ai essayé de faire)
Sinon, j’avais pensé faire un paquet comme sur le dêpot debian multimédia qui insére la clef GPG directement dans apt-get, à installer avec les kernels, mais je sais pas vraiment comment m’y prendre… (debian-multimedia.org/faq.php#q1)

Est-ce qu’il y aurait moyen de lancer un truc comme

avant le reboot?
Lors des d-i preseed/late_command par exemple

?

N’empêche, je trouve que ce truc là emacs23-nox ça m’a l’air anormal :wink:

arf mert
c’était déjà fait le apt-key -add :-/
J’aurais mieux fait de lire avant de déconner sur emacs :stuck_out_tongue:

Faudrait qu’on teste ça
https://help.ubuntu.com/community/InstallCDCustomization#Modify_pool_structure_to_include_more_packages