Gestion de services sous Unix - FreeBSDbapt/gestion_service_unix.pdflaisse la main a d’autres pour...

64
Gestion de services sous Unix Baptiste Daroussin [email protected] [email protected] sysadmin #6 Paris 19 Février 2016

Transcript of Gestion de services sous Unix - FreeBSDbapt/gestion_service_unix.pdflaisse la main a d’autres pour...

Page 1: Gestion de services sous Unix - FreeBSDbapt/gestion_service_unix.pdflaisse la main a d’autres pour la gestion des services... presque /etc/inittab /etc/ttys Généralement des scripts

Gestion de services sous Unix

Baptiste [email protected]

[email protected]

sysadmin #6Paris

19 Février 2016

Page 2: Gestion de services sous Unix - FreeBSDbapt/gestion_service_unix.pdflaisse la main a d’autres pour la gestion des services... presque /etc/inittab /etc/ttys Généralement des scripts

Disclaimer

sysadmin#6 Gestion de services sous Unix 2 of 16

Page 3: Gestion de services sous Unix - FreeBSDbapt/gestion_service_unix.pdflaisse la main a d’autres pour la gestion des services... presque /etc/inittab /etc/ttys Généralement des scripts

L’arlésienne

systemdrcNG

SMF

OpenRC

launchdrelaunchd

daemontools

rc

watchman

svceINIT SysVinit

SystemXVInoshupstart monit

Epoch

finitRunit

initngminit

sinitninit

perp

sparkrc

supervisor

circus

Shepherd

procd DEMONS

sysadmin#6 Gestion de services sous Unix 3 of 16

Page 4: Gestion de services sous Unix - FreeBSDbapt/gestion_service_unix.pdflaisse la main a d’autres pour la gestion des services... presque /etc/inittab /etc/ttys Généralement des scripts

Il était une fois init(8)

▶ petit mais costaud

▶ I’m your father(c)(tm)▶ laisse la main a d’autres pour la gestion des services... presque

▶ /etc/inittab▶ /etc/ttys

▶ Généralement des scripts shell▶ SysVinit▶ rcNG▶ rc

sysadmin#6 Gestion de services sous Unix 4 of 16

Page 5: Gestion de services sous Unix - FreeBSDbapt/gestion_service_unix.pdflaisse la main a d’autres pour la gestion des services... presque /etc/inittab /etc/ttys Généralement des scripts

Il était une fois init(8)

▶ petit mais costaud▶ I’m your father(c)(tm)

▶ laisse la main a d’autres pour la gestion des services... presque▶ /etc/inittab▶ /etc/ttys

▶ Généralement des scripts shell▶ SysVinit▶ rcNG▶ rc

sysadmin#6 Gestion de services sous Unix 4 of 16

Page 6: Gestion de services sous Unix - FreeBSDbapt/gestion_service_unix.pdflaisse la main a d’autres pour la gestion des services... presque /etc/inittab /etc/ttys Généralement des scripts

Il était une fois init(8)

▶ petit mais costaud▶ I’m your father(c)(tm)▶ laisse la main a d’autres pour la gestion des services...

presque▶ /etc/inittab▶ /etc/ttys

▶ Généralement des scripts shell▶ SysVinit▶ rcNG▶ rc

sysadmin#6 Gestion de services sous Unix 4 of 16

Page 7: Gestion de services sous Unix - FreeBSDbapt/gestion_service_unix.pdflaisse la main a d’autres pour la gestion des services... presque /etc/inittab /etc/ttys Généralement des scripts

Il était une fois init(8)

▶ petit mais costaud▶ I’m your father(c)(tm)▶ laisse la main a d’autres pour la gestion des services... presque

▶ /etc/inittab▶ /etc/ttys

▶ Généralement des scripts shell▶ SysVinit▶ rcNG▶ rc

sysadmin#6 Gestion de services sous Unix 4 of 16

Page 8: Gestion de services sous Unix - FreeBSDbapt/gestion_service_unix.pdflaisse la main a d’autres pour la gestion des services... presque /etc/inittab /etc/ttys Généralement des scripts

Il était une fois init(8)

▶ petit mais costaud▶ I’m your father(c)(tm)▶ laisse la main a d’autres pour la gestion des services... presque

▶ /etc/inittab▶ /etc/ttys

▶ Généralement des scripts shell▶ SysVinit▶ rcNG▶ rc

sysadmin#6 Gestion de services sous Unix 4 of 16

Page 9: Gestion de services sous Unix - FreeBSDbapt/gestion_service_unix.pdflaisse la main a d’autres pour la gestion des services... presque /etc/inittab /etc/ttys Généralement des scripts

Il était une fois init(8)

▶ petit mais costaud▶ I’m your father(c)(tm)▶ laisse la main a d’autres pour la gestion des services... presque

▶ /etc/inittab▶ /etc/ttys

▶ Généralement des scripts shell▶ SysVinit▶ rcNG▶ rc

sysadmin#6 Gestion de services sous Unix 4 of 16

Page 10: Gestion de services sous Unix - FreeBSDbapt/gestion_service_unix.pdflaisse la main a d’autres pour la gestion des services... presque /etc/inittab /etc/ttys Généralement des scripts

Alors pourquoi tout ce bordel?

▶ trop naïf▶ framework complexes▶ cohérence compliquée▶ gestion de ressource complexe▶ peu réactif

sysadmin#6 Gestion de services sous Unix 5 of 16

Page 11: Gestion de services sous Unix - FreeBSDbapt/gestion_service_unix.pdflaisse la main a d’autres pour la gestion des services... presque /etc/inittab /etc/ttys Généralement des scripts

Alors pourquoi tout ce bordel?

▶ trop naïf

▶ framework complexes▶ cohérence compliquée▶ gestion de ressource complexe▶ peu réactif

sysadmin#6 Gestion de services sous Unix 5 of 16

Page 12: Gestion de services sous Unix - FreeBSDbapt/gestion_service_unix.pdflaisse la main a d’autres pour la gestion des services... presque /etc/inittab /etc/ttys Généralement des scripts

Alors pourquoi tout ce bordel?

▶ trop naïf▶ framework complexes

▶ cohérence compliquée▶ gestion de ressource complexe▶ peu réactif

sysadmin#6 Gestion de services sous Unix 5 of 16

Page 13: Gestion de services sous Unix - FreeBSDbapt/gestion_service_unix.pdflaisse la main a d’autres pour la gestion des services... presque /etc/inittab /etc/ttys Généralement des scripts

Alors pourquoi tout ce bordel?

▶ trop naïf▶ framework complexes▶ cohérence compliquée

▶ gestion de ressource complexe▶ peu réactif

sysadmin#6 Gestion de services sous Unix 5 of 16

Page 14: Gestion de services sous Unix - FreeBSDbapt/gestion_service_unix.pdflaisse la main a d’autres pour la gestion des services... presque /etc/inittab /etc/ttys Généralement des scripts

Alors pourquoi tout ce bordel?

▶ trop naïf▶ framework complexes▶ cohérence compliquée▶ gestion de ressource complexe

▶ peu réactif

sysadmin#6 Gestion de services sous Unix 5 of 16

Page 15: Gestion de services sous Unix - FreeBSDbapt/gestion_service_unix.pdflaisse la main a d’autres pour la gestion des services... presque /etc/inittab /etc/ttys Généralement des scripts

Alors pourquoi tout ce bordel?

▶ trop naïf▶ framework complexes▶ cohérence compliquée▶ gestion de ressource complexe▶ peu réactif

sysadmin#6 Gestion de services sous Unix 5 of 16

Page 16: Gestion de services sous Unix - FreeBSDbapt/gestion_service_unix.pdflaisse la main a d’autres pour la gestion des services... presque /etc/inittab /etc/ttys Généralement des scripts

Trop naïf

▶ ne peut superviser qu’un process simple (via son pid)▶ perdu si double fork▶ interactions limitées▶ gestion de dépendance faible

sysadmin#6 Gestion de services sous Unix 6 of 16

Page 17: Gestion de services sous Unix - FreeBSDbapt/gestion_service_unix.pdflaisse la main a d’autres pour la gestion des services... presque /etc/inittab /etc/ttys Généralement des scripts

Trop naïf

▶ ne peut superviser qu’un process simple (via son pid)

▶ perdu si double fork▶ interactions limitées▶ gestion de dépendance faible

sysadmin#6 Gestion de services sous Unix 6 of 16

Page 18: Gestion de services sous Unix - FreeBSDbapt/gestion_service_unix.pdflaisse la main a d’autres pour la gestion des services... presque /etc/inittab /etc/ttys Généralement des scripts

Trop naïf

▶ ne peut superviser qu’un process simple (via son pid)▶ perdu si double fork

▶ interactions limitées▶ gestion de dépendance faible

sysadmin#6 Gestion de services sous Unix 6 of 16

Page 19: Gestion de services sous Unix - FreeBSDbapt/gestion_service_unix.pdflaisse la main a d’autres pour la gestion des services... presque /etc/inittab /etc/ttys Généralement des scripts

Trop naïf

▶ ne peut superviser qu’un process simple (via son pid)▶ perdu si double fork▶ interactions limitées

▶ gestion de dépendance faible

sysadmin#6 Gestion de services sous Unix 6 of 16

Page 20: Gestion de services sous Unix - FreeBSDbapt/gestion_service_unix.pdflaisse la main a d’autres pour la gestion des services... presque /etc/inittab /etc/ttys Généralement des scripts

Trop naïf

▶ ne peut superviser qu’un process simple (via son pid)▶ perdu si double fork▶ interactions limitées▶ gestion de dépendance faible

sysadmin#6 Gestion de services sous Unix 6 of 16

Page 21: Gestion de services sous Unix - FreeBSDbapt/gestion_service_unix.pdflaisse la main a d’autres pour la gestion des services... presque /etc/inittab /etc/ttys Généralement des scripts

Framework complexes

▶ généralement en shell▶ complexe à isoler (cf commande service(8))▶ complexe à garder une cohérence entre les scripts d’init▶ complexe d’intégrer les systèmes de gestion de ressources▶ souvent inefficace (performances)▶ pas de mécanismes de surveillance de processus▶ peu de contrôle sur les processus (double fork)▶ fiabilité aléatoire du statut

sysadmin#6 Gestion de services sous Unix 7 of 16

Page 22: Gestion de services sous Unix - FreeBSDbapt/gestion_service_unix.pdflaisse la main a d’autres pour la gestion des services... presque /etc/inittab /etc/ttys Généralement des scripts

Framework complexes

▶ généralement en shell

▶ complexe à isoler (cf commande service(8))▶ complexe à garder une cohérence entre les scripts d’init▶ complexe d’intégrer les systèmes de gestion de ressources▶ souvent inefficace (performances)▶ pas de mécanismes de surveillance de processus▶ peu de contrôle sur les processus (double fork)▶ fiabilité aléatoire du statut

sysadmin#6 Gestion de services sous Unix 7 of 16

Page 23: Gestion de services sous Unix - FreeBSDbapt/gestion_service_unix.pdflaisse la main a d’autres pour la gestion des services... presque /etc/inittab /etc/ttys Généralement des scripts

Framework complexes

▶ généralement en shell▶ complexe à isoler (cf commande service(8))

▶ complexe à garder une cohérence entre les scripts d’init▶ complexe d’intégrer les systèmes de gestion de ressources▶ souvent inefficace (performances)▶ pas de mécanismes de surveillance de processus▶ peu de contrôle sur les processus (double fork)▶ fiabilité aléatoire du statut

sysadmin#6 Gestion de services sous Unix 7 of 16

Page 24: Gestion de services sous Unix - FreeBSDbapt/gestion_service_unix.pdflaisse la main a d’autres pour la gestion des services... presque /etc/inittab /etc/ttys Généralement des scripts

Framework complexes

▶ généralement en shell▶ complexe à isoler (cf commande service(8))▶ complexe à garder une cohérence entre les scripts d’init

▶ complexe d’intégrer les systèmes de gestion de ressources▶ souvent inefficace (performances)▶ pas de mécanismes de surveillance de processus▶ peu de contrôle sur les processus (double fork)▶ fiabilité aléatoire du statut

sysadmin#6 Gestion de services sous Unix 7 of 16

Page 25: Gestion de services sous Unix - FreeBSDbapt/gestion_service_unix.pdflaisse la main a d’autres pour la gestion des services... presque /etc/inittab /etc/ttys Généralement des scripts

Framework complexes

▶ généralement en shell▶ complexe à isoler (cf commande service(8))▶ complexe à garder une cohérence entre les scripts d’init▶ complexe d’intégrer les systèmes de gestion de ressources

▶ souvent inefficace (performances)▶ pas de mécanismes de surveillance de processus▶ peu de contrôle sur les processus (double fork)▶ fiabilité aléatoire du statut

sysadmin#6 Gestion de services sous Unix 7 of 16

Page 26: Gestion de services sous Unix - FreeBSDbapt/gestion_service_unix.pdflaisse la main a d’autres pour la gestion des services... presque /etc/inittab /etc/ttys Généralement des scripts

Framework complexes

▶ généralement en shell▶ complexe à isoler (cf commande service(8))▶ complexe à garder une cohérence entre les scripts d’init▶ complexe d’intégrer les systèmes de gestion de ressources▶ souvent inefficace (performances)

▶ pas de mécanismes de surveillance de processus▶ peu de contrôle sur les processus (double fork)▶ fiabilité aléatoire du statut

sysadmin#6 Gestion de services sous Unix 7 of 16

Page 27: Gestion de services sous Unix - FreeBSDbapt/gestion_service_unix.pdflaisse la main a d’autres pour la gestion des services... presque /etc/inittab /etc/ttys Généralement des scripts

Framework complexes

▶ généralement en shell▶ complexe à isoler (cf commande service(8))▶ complexe à garder une cohérence entre les scripts d’init▶ complexe d’intégrer les systèmes de gestion de ressources▶ souvent inefficace (performances)▶ pas de mécanismes de surveillance de processus

▶ peu de contrôle sur les processus (double fork)▶ fiabilité aléatoire du statut

sysadmin#6 Gestion de services sous Unix 7 of 16

Page 28: Gestion de services sous Unix - FreeBSDbapt/gestion_service_unix.pdflaisse la main a d’autres pour la gestion des services... presque /etc/inittab /etc/ttys Généralement des scripts

Framework complexes

▶ généralement en shell▶ complexe à isoler (cf commande service(8))▶ complexe à garder une cohérence entre les scripts d’init▶ complexe d’intégrer les systèmes de gestion de ressources▶ souvent inefficace (performances)▶ pas de mécanismes de surveillance de processus▶ peu de contrôle sur les processus (double fork)

▶ fiabilité aléatoire du statut

sysadmin#6 Gestion de services sous Unix 7 of 16

Page 29: Gestion de services sous Unix - FreeBSDbapt/gestion_service_unix.pdflaisse la main a d’autres pour la gestion des services... presque /etc/inittab /etc/ttys Généralement des scripts

Framework complexes

▶ généralement en shell▶ complexe à isoler (cf commande service(8))▶ complexe à garder une cohérence entre les scripts d’init▶ complexe d’intégrer les systèmes de gestion de ressources▶ souvent inefficace (performances)▶ pas de mécanismes de surveillance de processus▶ peu de contrôle sur les processus (double fork)▶ fiabilité aléatoire du statut

sysadmin#6 Gestion de services sous Unix 7 of 16

Page 30: Gestion de services sous Unix - FreeBSDbapt/gestion_service_unix.pdflaisse la main a d’autres pour la gestion des services... presque /etc/inittab /etc/ttys Généralement des scripts

Réactivité

▶ gestion événementielle forcément externe (cron, udev/devd,inetd)

▶ duplication de la gestion des services▶ incohérence dans la gestion des services

▶ gestion événementielle souvent peu réactive: latence entrel’arrivée de l’évènement et l’action

▶ fault management absent

sysadmin#6 Gestion de services sous Unix 8 of 16

Page 31: Gestion de services sous Unix - FreeBSDbapt/gestion_service_unix.pdflaisse la main a d’autres pour la gestion des services... presque /etc/inittab /etc/ttys Généralement des scripts

Réactivité

▶ gestion événementielle forcément externe (cron, udev/devd,inetd)

▶ duplication de la gestion des services▶ incohérence dans la gestion des services

▶ gestion événementielle souvent peu réactive: latence entrel’arrivée de l’évènement et l’action

▶ fault management absent

sysadmin#6 Gestion de services sous Unix 8 of 16

Page 32: Gestion de services sous Unix - FreeBSDbapt/gestion_service_unix.pdflaisse la main a d’autres pour la gestion des services... presque /etc/inittab /etc/ttys Généralement des scripts

Réactivité

▶ gestion événementielle forcément externe (cron, udev/devd,inetd)

▶ duplication de la gestion des services▶ incohérence dans la gestion des services

▶ gestion événementielle souvent peu réactive: latence entrel’arrivée de l’évènement et l’action

▶ fault management absent

sysadmin#6 Gestion de services sous Unix 8 of 16

Page 33: Gestion de services sous Unix - FreeBSDbapt/gestion_service_unix.pdflaisse la main a d’autres pour la gestion des services... presque /etc/inittab /etc/ttys Généralement des scripts

Réactivité

▶ gestion événementielle forcément externe (cron, udev/devd,inetd)

▶ duplication de la gestion des services▶ incohérence dans la gestion des services

▶ gestion événementielle souvent peu réactive: latence entrel’arrivée de l’évènement et l’action

▶ fault management absent

sysadmin#6 Gestion de services sous Unix 8 of 16

Page 34: Gestion de services sous Unix - FreeBSDbapt/gestion_service_unix.pdflaisse la main a d’autres pour la gestion des services... presque /etc/inittab /etc/ttys Généralement des scripts

Réactivité

▶ gestion événementielle forcément externe (cron, udev/devd,inetd)

▶ duplication de la gestion des services▶ incohérence dans la gestion des services

▶ gestion événementielle souvent peu réactive: latence entrel’arrivée de l’évènement et l’action

▶ fault management absent

sysadmin#6 Gestion de services sous Unix 8 of 16

Page 35: Gestion de services sous Unix - FreeBSDbapt/gestion_service_unix.pdflaisse la main a d’autres pour la gestion des services... presque /etc/inittab /etc/ttys Généralement des scripts

D’autre soucis: pas simple d’être un bon daemoniste

▶ utiliser setuid(2), setgid(2) ET setgroup(2) (Vérifier quel’opération c’est réellement effectuée)

▶ toujours faire un chdir(2) après un chroot(2) (Vérifier leur bonfonctionnement)

▶ configurer de manière portable les setrlimit(2)▶ utiliser les mécanismes OS spécifiques de sandboxing

sysadmin#6 Gestion de services sous Unix 9 of 16

Page 36: Gestion de services sous Unix - FreeBSDbapt/gestion_service_unix.pdflaisse la main a d’autres pour la gestion des services... presque /etc/inittab /etc/ttys Généralement des scripts

D’autre soucis: pas simple d’être un bon daemoniste

▶ utiliser setuid(2), setgid(2) ET setgroup(2) (Vérifier quel’opération c’est réellement effectuée)

▶ toujours faire un chdir(2) après un chroot(2) (Vérifier leur bonfonctionnement)

▶ configurer de manière portable les setrlimit(2)▶ utiliser les mécanismes OS spécifiques de sandboxing

sysadmin#6 Gestion de services sous Unix 9 of 16

Page 37: Gestion de services sous Unix - FreeBSDbapt/gestion_service_unix.pdflaisse la main a d’autres pour la gestion des services... presque /etc/inittab /etc/ttys Généralement des scripts

D’autre soucis: pas simple d’être un bon daemoniste

▶ utiliser setuid(2), setgid(2) ET setgroup(2) (Vérifier quel’opération c’est réellement effectuée)

▶ toujours faire un chdir(2) après un chroot(2) (Vérifier leur bonfonctionnement)

▶ configurer de manière portable les setrlimit(2)▶ utiliser les mécanismes OS spécifiques de sandboxing

sysadmin#6 Gestion de services sous Unix 9 of 16

Page 38: Gestion de services sous Unix - FreeBSDbapt/gestion_service_unix.pdflaisse la main a d’autres pour la gestion des services... presque /etc/inittab /etc/ttys Généralement des scripts

D’autre soucis: pas simple d’être un bon daemoniste

▶ utiliser setuid(2), setgid(2) ET setgroup(2) (Vérifier quel’opération c’est réellement effectuée)

▶ toujours faire un chdir(2) après un chroot(2) (Vérifier leur bonfonctionnement)

▶ configurer de manière portable les setrlimit(2)

▶ utiliser les mécanismes OS spécifiques de sandboxing

sysadmin#6 Gestion de services sous Unix 9 of 16

Page 39: Gestion de services sous Unix - FreeBSDbapt/gestion_service_unix.pdflaisse la main a d’autres pour la gestion des services... presque /etc/inittab /etc/ttys Généralement des scripts

D’autre soucis: pas simple d’être un bon daemoniste

▶ utiliser setuid(2), setgid(2) ET setgroup(2) (Vérifier quel’opération c’est réellement effectuée)

▶ toujours faire un chdir(2) après un chroot(2) (Vérifier leur bonfonctionnement)

▶ configurer de manière portable les setrlimit(2)▶ utiliser les mécanismes OS spécifiques de sandboxing

sysadmin#6 Gestion de services sous Unix 9 of 16

Page 40: Gestion de services sous Unix - FreeBSDbapt/gestion_service_unix.pdflaisse la main a d’autres pour la gestion des services... presque /etc/inittab /etc/ttys Généralement des scripts

Le problème des PIDs

▶ concept "racy"▶ services avec multiple workers hors de contrôle :

▶ les fils qui échappent à la surveillance des parents▶ les parents laxistes qui abandonnent leurs enfants

sysadmin#6 Gestion de services sous Unix 10 of 16

Page 41: Gestion de services sous Unix - FreeBSDbapt/gestion_service_unix.pdflaisse la main a d’autres pour la gestion des services... presque /etc/inittab /etc/ttys Généralement des scripts

Le problème des PIDs

▶ concept "racy"

▶ services avec multiple workers hors de contrôle :▶ les fils qui échappent à la surveillance des parents▶ les parents laxistes qui abandonnent leurs enfants

sysadmin#6 Gestion de services sous Unix 10 of 16

Page 42: Gestion de services sous Unix - FreeBSDbapt/gestion_service_unix.pdflaisse la main a d’autres pour la gestion des services... presque /etc/inittab /etc/ttys Généralement des scripts

Le problème des PIDs

▶ concept "racy"▶ services avec multiple workers hors de contrôle :

▶ les fils qui échappent à la surveillance des parents▶ les parents laxistes qui abandonnent leurs enfants

sysadmin#6 Gestion de services sous Unix 10 of 16

Page 43: Gestion de services sous Unix - FreeBSDbapt/gestion_service_unix.pdflaisse la main a d’autres pour la gestion des services... presque /etc/inittab /etc/ttys Généralement des scripts

Ça manque de sucre un peu tout ça

▶ y a des trous dans ma syslog :(▶ c’est pas très parallèle tout ça▶ comment je m’assure que ça marche?

sysadmin#6 Gestion de services sous Unix 11 of 16

Page 44: Gestion de services sous Unix - FreeBSDbapt/gestion_service_unix.pdflaisse la main a d’autres pour la gestion des services... presque /etc/inittab /etc/ttys Généralement des scripts

Des solutions possibles?

▶ Pour les PIDs :

▶ process descriptors (pas suffisant) (Linux 4.1, FreeBSD 10.0)▶ les reapers (Linux 3.4, FreeBSD 10.2, Dragonfly 4.0, Solaris

10)

▶ Gérer les ressources le sandboxing et la daemonisation via degénération de services

▶ La réactivité : faire communiquer nativement les différentscomposants

▶ La complexité : décrire au maximum les services via desformat de description

sysadmin#6 Gestion de services sous Unix 12 of 16

Page 45: Gestion de services sous Unix - FreeBSDbapt/gestion_service_unix.pdflaisse la main a d’autres pour la gestion des services... presque /etc/inittab /etc/ttys Généralement des scripts

Des solutions possibles?

▶ Pour les PIDs :▶ process descriptors (pas suffisant) (Linux 4.1, FreeBSD 10.0)

▶ les reapers (Linux 3.4, FreeBSD 10.2, Dragonfly 4.0, Solaris10)

▶ Gérer les ressources le sandboxing et la daemonisation via degénération de services

▶ La réactivité : faire communiquer nativement les différentscomposants

▶ La complexité : décrire au maximum les services via desformat de description

sysadmin#6 Gestion de services sous Unix 12 of 16

Page 46: Gestion de services sous Unix - FreeBSDbapt/gestion_service_unix.pdflaisse la main a d’autres pour la gestion des services... presque /etc/inittab /etc/ttys Généralement des scripts

Des solutions possibles?

▶ Pour les PIDs :▶ process descriptors (pas suffisant) (Linux 4.1, FreeBSD 10.0)▶ les reapers (Linux 3.4, FreeBSD 10.2, Dragonfly 4.0, Solaris

10)

▶ Gérer les ressources le sandboxing et la daemonisation via degénération de services

▶ La réactivité : faire communiquer nativement les différentscomposants

▶ La complexité : décrire au maximum les services via desformat de description

sysadmin#6 Gestion de services sous Unix 12 of 16

Page 47: Gestion de services sous Unix - FreeBSDbapt/gestion_service_unix.pdflaisse la main a d’autres pour la gestion des services... presque /etc/inittab /etc/ttys Généralement des scripts

Des solutions possibles?

▶ Pour les PIDs :▶ process descriptors (pas suffisant) (Linux 4.1, FreeBSD 10.0)▶ les reapers (Linux 3.4, FreeBSD 10.2, Dragonfly 4.0, Solaris

10)

▶ Gérer les ressources le sandboxing et la daemonisation via degénération de services

▶ La réactivité : faire communiquer nativement les différentscomposants

▶ La complexité : décrire au maximum les services via desformat de description

sysadmin#6 Gestion de services sous Unix 12 of 16

Page 48: Gestion de services sous Unix - FreeBSDbapt/gestion_service_unix.pdflaisse la main a d’autres pour la gestion des services... presque /etc/inittab /etc/ttys Généralement des scripts

Des solutions possibles?

▶ Pour les PIDs :▶ process descriptors (pas suffisant) (Linux 4.1, FreeBSD 10.0)▶ les reapers (Linux 3.4, FreeBSD 10.2, Dragonfly 4.0, Solaris

10)

▶ Gérer les ressources le sandboxing et la daemonisation via degénération de services

▶ La réactivité : faire communiquer nativement les différentscomposants

▶ La complexité : décrire au maximum les services via desformat de description

sysadmin#6 Gestion de services sous Unix 12 of 16

Page 49: Gestion de services sous Unix - FreeBSDbapt/gestion_service_unix.pdflaisse la main a d’autres pour la gestion des services... presque /etc/inittab /etc/ttys Généralement des scripts

Des solutions possibles?

▶ Pour les PIDs :▶ process descriptors (pas suffisant) (Linux 4.1, FreeBSD 10.0)▶ les reapers (Linux 3.4, FreeBSD 10.2, Dragonfly 4.0, Solaris

10)

▶ Gérer les ressources le sandboxing et la daemonisation via degénération de services

▶ La réactivité : faire communiquer nativement les différentscomposants

▶ La complexité : décrire au maximum les services via desformat de description

sysadmin#6 Gestion de services sous Unix 12 of 16

Page 50: Gestion de services sous Unix - FreeBSDbapt/gestion_service_unix.pdflaisse la main a d’autres pour la gestion des services... presque /etc/inittab /etc/ttys Généralement des scripts

Et un peu de sucre en poudre

▶ Préparer les sockets :▶ aide à la parallélisation▶ simplifie la séparation de privilèges▶ aide à la robustesse

▶ utiliser un IPC:▶ limite la duplication de code▶ permet la séparation des tâches (KISS)

sysadmin#6 Gestion de services sous Unix 13 of 16

Page 51: Gestion de services sous Unix - FreeBSDbapt/gestion_service_unix.pdflaisse la main a d’autres pour la gestion des services... presque /etc/inittab /etc/ttys Généralement des scripts

Et un peu de sucre en poudre

▶ Préparer les sockets :▶ aide à la parallélisation▶ simplifie la séparation de privilèges▶ aide à la robustesse

▶ utiliser un IPC:▶ limite la duplication de code▶ permet la séparation des tâches (KISS)

sysadmin#6 Gestion de services sous Unix 13 of 16

Page 52: Gestion de services sous Unix - FreeBSDbapt/gestion_service_unix.pdflaisse la main a d’autres pour la gestion des services... presque /etc/inittab /etc/ttys Généralement des scripts

Et un peu de sucre en poudre

▶ Préparer les sockets :▶ aide à la parallélisation▶ simplifie la séparation de privilèges▶ aide à la robustesse

▶ utiliser un IPC:▶ limite la duplication de code▶ permet la séparation des tâches (KISS)

sysadmin#6 Gestion de services sous Unix 13 of 16

Page 53: Gestion de services sous Unix - FreeBSDbapt/gestion_service_unix.pdflaisse la main a d’autres pour la gestion des services... presque /etc/inittab /etc/ttys Généralement des scripts

Oui mais...

▶ Faut il remplacer init(8) ? pas nécessairement▶ Un des systèmes existant permet il corrige t il tout ça ? NON▶ Un des systèmes adresse t il les problèmes majeures ? OUI▶ Allez lequel ?

SMFmais over engineer :(

sysadmin#6 Gestion de services sous Unix 14 of 16

Page 54: Gestion de services sous Unix - FreeBSDbapt/gestion_service_unix.pdflaisse la main a d’autres pour la gestion des services... presque /etc/inittab /etc/ttys Généralement des scripts

Oui mais...

▶ Faut il remplacer init(8) ?

pas nécessairement▶ Un des systèmes existant permet il corrige t il tout ça ? NON▶ Un des systèmes adresse t il les problèmes majeures ? OUI▶ Allez lequel ?

SMFmais over engineer :(

sysadmin#6 Gestion de services sous Unix 14 of 16

Page 55: Gestion de services sous Unix - FreeBSDbapt/gestion_service_unix.pdflaisse la main a d’autres pour la gestion des services... presque /etc/inittab /etc/ttys Généralement des scripts

Oui mais...

▶ Faut il remplacer init(8) ? pas nécessairement

▶ Un des systèmes existant permet il corrige t il tout ça ? NON▶ Un des systèmes adresse t il les problèmes majeures ? OUI▶ Allez lequel ?

SMFmais over engineer :(

sysadmin#6 Gestion de services sous Unix 14 of 16

Page 56: Gestion de services sous Unix - FreeBSDbapt/gestion_service_unix.pdflaisse la main a d’autres pour la gestion des services... presque /etc/inittab /etc/ttys Généralement des scripts

Oui mais...

▶ Faut il remplacer init(8) ? pas nécessairement▶ Un des systèmes existant permet il corrige t il tout ça ?

NON▶ Un des systèmes adresse t il les problèmes majeures ? OUI▶ Allez lequel ?

SMFmais over engineer :(

sysadmin#6 Gestion de services sous Unix 14 of 16

Page 57: Gestion de services sous Unix - FreeBSDbapt/gestion_service_unix.pdflaisse la main a d’autres pour la gestion des services... presque /etc/inittab /etc/ttys Généralement des scripts

Oui mais...

▶ Faut il remplacer init(8) ? pas nécessairement▶ Un des systèmes existant permet il corrige t il tout ça ? NON

▶ Un des systèmes adresse t il les problèmes majeures ? OUI▶ Allez lequel ?

SMFmais over engineer :(

sysadmin#6 Gestion de services sous Unix 14 of 16

Page 58: Gestion de services sous Unix - FreeBSDbapt/gestion_service_unix.pdflaisse la main a d’autres pour la gestion des services... presque /etc/inittab /etc/ttys Généralement des scripts

Oui mais...

▶ Faut il remplacer init(8) ? pas nécessairement▶ Un des systèmes existant permet il corrige t il tout ça ? NON▶ Un des systèmes adresse t il les problèmes majeures ?

OUI▶ Allez lequel ?

SMFmais over engineer :(

sysadmin#6 Gestion de services sous Unix 14 of 16

Page 59: Gestion de services sous Unix - FreeBSDbapt/gestion_service_unix.pdflaisse la main a d’autres pour la gestion des services... presque /etc/inittab /etc/ttys Généralement des scripts

Oui mais...

▶ Faut il remplacer init(8) ? pas nécessairement▶ Un des systèmes existant permet il corrige t il tout ça ? NON▶ Un des systèmes adresse t il les problèmes majeures ? OUI

▶ Allez lequel ?

SMFmais over engineer :(

sysadmin#6 Gestion de services sous Unix 14 of 16

Page 60: Gestion de services sous Unix - FreeBSDbapt/gestion_service_unix.pdflaisse la main a d’autres pour la gestion des services... presque /etc/inittab /etc/ttys Généralement des scripts

Oui mais...

▶ Faut il remplacer init(8) ? pas nécessairement▶ Un des systèmes existant permet il corrige t il tout ça ? NON▶ Un des systèmes adresse t il les problèmes majeures ? OUI▶ Allez lequel ?

SMFmais over engineer :(

sysadmin#6 Gestion de services sous Unix 14 of 16

Page 61: Gestion de services sous Unix - FreeBSDbapt/gestion_service_unix.pdflaisse la main a d’autres pour la gestion des services... presque /etc/inittab /etc/ttys Généralement des scripts

Oui mais...

▶ Faut il remplacer init(8) ? pas nécessairement▶ Un des systèmes existant permet il corrige t il tout ça ? NON▶ Un des systèmes adresse t il les problèmes majeures ? OUI▶ Allez lequel ?

SMF

mais over engineer :(

sysadmin#6 Gestion de services sous Unix 14 of 16

Page 62: Gestion de services sous Unix - FreeBSDbapt/gestion_service_unix.pdflaisse la main a d’autres pour la gestion des services... presque /etc/inittab /etc/ttys Généralement des scripts

Oui mais...

▶ Faut il remplacer init(8) ? pas nécessairement▶ Un des systèmes existant permet il corrige t il tout ça ? NON▶ Un des systèmes adresse t il les problèmes majeures ? OUI▶ Allez lequel ?

SMFmais over engineer :(

sysadmin#6 Gestion de services sous Unix 14 of 16

Page 63: Gestion de services sous Unix - FreeBSDbapt/gestion_service_unix.pdflaisse la main a d’autres pour la gestion des services... presque /etc/inittab /etc/ttys Généralement des scripts

Un peu de lecture

▶ Solaris Service Management Facility: Modern System Startupand Administration

▶ The Design and Implementation of the NetBSD rc.d system▶ Les commentaires de Paul Vixie dans do_command.c

sysadmin#6 Gestion de services sous Unix 15 of 16

Page 64: Gestion de services sous Unix - FreeBSDbapt/gestion_service_unix.pdflaisse la main a d’autres pour la gestion des services... presque /etc/inittab /etc/ttys Généralement des scripts

Questions?

sysadmin#6 Gestion de services sous Unix 16 of 16