OpenSolaris : Immutable Service Containers

OpenSolaris est "livré" comme une solution tout-en-un : desktop, laptop et serveur. Mais quid si on veut ne garder qu'une configuration spécifique à la dernière option ?

C'est là qu'entrent en jeu les Immutable Service Containers. Le principe est double :

  • fournir une configuration minimalisée sans services inutiles;
  • renforcer l'ensemble du système en créant une zone globale dédiée à l'administration et une première zone spécifique pour des services Internet (par exemple).

Le résultat d'ensemble ressemble schématiquement à cela, sachant qu'il est basé sur la technologie des "zones" (ou "containers") que l'on peut conceptuellement rapprocher du "chrooting" sous OpenBSD par exemple, mais en plus complexe. On se rapportera à l'abondante documentation sur le web à ce sujet.

Donc normalement, c'est facile à comprendre pour quelqu'un familier avec OpenSolaris / Solaris :

ISC Diagram

drZZ s'est donc attaché à la première phase (la seconde fera l'objet d'un post plus tard). La première chose à faire, c'est de se connecter sur la machine en ssh par exemple (ou en console série si vous avez) parce que l'un des services qui va être désactivé, précisément, c'est gdm (on va voir plus bas). Eh bé oui, pour de l'administration système (parce que c'est de ça qu'il s'agit), on n'a pas besoin de tout le flon-flon graphique, ni de tout un tas d'autres gadgets.

Nous voici donc aux commandes :

drzz@imac5~ $ ssh drzz@192.168.1.45
Password: 
Last login: Thu Nov 26 17:32:41 2009 from imac5
Sun Microsystems Inc.   SunOS 5.11      snv_126 November 2008

En suivant la procédure décrite sur le lien ci-dessus, on va installer le package SUNWmercurial pour utiliser "hg" :

drzz@hanouka:~$ pfexec pkg install SUNWmercurial
No updates necessary for this image.   

et j'avais oublié que je l'avais déjà le bougre. Pas grave, on continue en installant dans son répertoire personnel (ou autre part), l'ensemble du dispositif "isc" :

drzz@hanouka:~$ hg clone https://kenai.com/hg/isc~source isc
requesting all changes
adding changesets
adding manifests
adding file changes
added 28 changesets with 59 changes to 32 files
updating working directory
27 files updated, 0 files merged, 0 files removed, 0 files unresolved

et on vérifie que tout est correct :

drzz@hanouka:~$ ls -la
total 1563
drwxr-xr-x 55 drzz staff     72 2009-11-26 17:39 .
drwxr-xr-x  3 root   root       3 2009-09-14 18:36 ..
...
drwxr-xr-x  7 drzz staff      8 2009-11-26 17:39 isc
...

Une fois tout le bastringue prêt comme il faut, on vérifie ce qu'il y a dans la bête :

drzz@hanouka:~$ cd isc/
drzz@hanouka:~/isc$ ls -al
total 14
drwxr-xr-x  7 drzz staff  8 2009-11-26 17:39 .
drwxr-xr-x 55 drzz staff 72 2009-11-26 17:39 ..
drwxr-xr-x  3 drzz staff 11 2009-11-26 17:39 .hg
-rw-r--r--  1 drzz staff 92 2009-11-26 17:39 .hgtags
drwxr-xr-x  2 drzz staff  3 2009-11-26 17:39 bin
drwxr-xr-x  2 drzz staff  3 2009-11-26 17:39 etc
drwxr-xr-x  2 drzz staff 10 2009-11-26 17:39 lib
drwxr-xr-x  5 drzz staff 13 2009-11-26 17:39 opt

et en fait, on va lancer deux commandes. La première pour désactiver gdm (éviter des problèmes si la session est lancée par exemple - voir plus haut) :

drzz@hanouka:~$ pfexec svcadm disable gdm

et la seconde pour exécuter le script de minimisation :

drzz@hanouka:~$ pfexec isc/opt/samples/minimization.ksh

qui ne prend pas trop de temps.

L'analyse du script montre l'ensemble des services qui sont désactivés et les packages qui sont désinstallés. On peut même en ajouter au cas où, le script est suffisamment simple à lire. Et au cas où l'on voudrait revenir sur sa décision, pas de problème : on pourra toujours réinstaller les packages plus tard avec la commande "pkg".

Normalement, la connexion réseau se fait par la première interface disponible et il vaut mieux que ça soit de l'ethernet. En effet, le service nwam (Network Auto-Magic ou un truc dans le genre) est désactivé et en cas de setup initial un peu compliqué (genre trois cartes éthernet et deux wifi), il faut recourir à une configuration manuelle (j'ai donné, ça n'est pas la mer à boire quand même).

Résultat, un système prêt pour la deuxième phase avec l'exécution du ISC Construction Kit à proprement parler.

tags : OpenSolaris, Immutable Service Containers

mis en ligne : Fri Nov 27 12:57:24 CEST 2009