Automatiser l'installation de beaucoup de packages

From Deimos.fr / Bloc Notes Informatique
Jump to: navigation, search

1 Introduction

Pkgadd c'est pas super sexy, ya pleins d'options mais un peu trop cachées à mon goût. Pour le boulot je devais déployer sur plusieurs machines l'installation d'environ 1000 packages. Sauf qu'a chaque installation d'un package, il demande d'entrer y puis entrée, ce qui devient rapidement pénible.

Pour remédier au problème, je regarde le man et je tombe sur l'argument -n qui est pas mal puisqu'il permet de s'affranchir du mode interractif. L'inconvénient, c'est qui ne fonctionne pas vraiment à merveille. J'ai donc cherché un peu sur le net et suis tombé sur le fichier de réponse. C'est un fichier dans lequel nous passons des options. Ces options sont testées lors de l'installation d'un package et ici nous les forçons par défaut pour ne pas être embêter.

Note : il existe aussi la commande pkgask qui permet de créer un fichier de réponse, mais qui a l'air d'avoir quelques limitations par rapport à cette méthode.

IMPORTANT : Ceci ne fonctionne pas pour les .pkg ! Convertissez les au préalable.

2 Configuration

2.1 Fichier de réponse

Un fichier de réponse peut être généré à l'aide de la commande pkgask :

Command pkgask
pkgask -r /answer -d . <package>

Ceci aura pour effet de générer un fichier de réponse "anwser". Ce fichier contient les options propres au package et ne peut être utilisé par aucun autre package.

Il se peut qu'en essayant de générer un fichier de réponse, la commande retourne ceci :

pkgask: ERROR: package does not contain an interactive request script

Processing of request script failed.
No changes were made to the system.

Ceci indique que le package ne contient aucune information de personnalisation et dans ce cas, l'utilisation d'un fichier d'admin est necessaire.

2.2 Fichier d'admin

Tous les packages ne permettent pas l'utilisation d'un fichier de réponse, c'est pourquoi nous pouvons également utiliser un fichier d'admin. Le fichier d'admin fonctionne de la même facon que le fichier de réponse mais utilise les options standard d'une installation de package plutôt que des options personnalisées propres au package.

Un template de fichier d'admin se trouve dans le répertoire "/var/sadm/install/admin/default". Copiez le, puis modifiez le pour satisfaire vos besoins.

Voici donc à quoi ressemble un fichier d'admin :

Configuration File /answer
mail=
instance=overwrite
partial=nocheck
runlevel=nocheck
idepend=nocheck
rdepend=nocheck
space=nocheck
setuid=nocheck
conflict=nocheck
action=nocheck
networktimeout=60
networkretries=3
authentication=quit
keystore=/var/sadm/security
proxy=
basedir=default

ATTENTION : Si vous souhaitez utiliser cette methode pour installer des packages dans le script "Finish" d'un jumpstart, n'oubliez pas de modifier le paramettre "basedir=default" en "basedir=/a/" qui correspond au point de montage de la partition au moment de l'installation

2.3 Script d'installation

Vous pouvez simplement vous placer dans le dossier en question et exécuter un pkgadd :

  • Avec un fichier de réponse
Command pkgadd
pkgadd -n -r /answer -d . *

  • Avec un fichier d'admin
Command pkgadd
pkgadd -n -a /answer -d . *

Vous devez spécifier les full paths quand vous utilisez le fichier réponse !

Ou sinon, vous pouvez utiliser ce script, je le préfère, mais bon a vous de voir :

  • Avec un fichier de réponse
Command pkgadd
for i in * ; do
   test -d /export/home/packages_migration/$i && pkgadd -n -r /answer -d . $i
done

  • Avec un fichier d'admin
Command pkgadd
for i in * ; do
   test -d /export/home/packages_migration/$i && pkgadd -n -a /answer -d . $i
done

Lancez la bête et vous serez tranquile !

3 Ressources

http://forums13.itrc.hp.com/service/forums/questionanswer.do?admit=109447627+1253258346531+28353475&threadId=223010