5.2. Anaconda Architecture
Anaconda est un ensemble de modules et de scripts Python. Il utilise également plusieurs paquets et bibliothèques externes. Les principaux composants de cet ensemble d'outils comprennent les paquets suivants :
-
pykickstart
- analyse et valide les fichiers Kickstart. Il fournit également une structure de données qui stocke les valeurs qui pilotent l'installation. -
dnf
- le gestionnaire de paquets qui installe les paquets et résout les dépendances -
blivet
- s'occupe de toutes les activités liées à la gestion du stockage -
pyanaconda
- contient l'interface utilisateur et les modules pour Anacondail fournit également divers utilitaires permettant d'exécuter des fonctions orientées système, telles que la sélection du clavier et du fuseau horaire, la configuration du réseau et la création d'utilisateurs. Il fournit également divers utilitaires permettant d'exécuter des fonctions orientées système -
python-meh
- contient un gestionnaire d'exception qui recueille et stocke des informations système supplémentaires en cas de crash et transmet ces informations à la bibliothèquelibreport
, qui fait elle-même partie du projet ABRT -
dasbus
- permet la communication entre la bibliothèqueD-Bus
et les modules d'anaconda ainsi qu'avec des composants externes -
python-simpleline
- bibliothèque de l'interface utilisateur texte pour gérer l'interaction de l'utilisateur dans le mode texte Anaconda -
gtk
- la bibliothèque de la boîte à outils Gnome pour la création et la gestion d'interfaces graphiques
Outre la division en paquets mentionnée précédemment, Anaconda est divisé en interne entre l'interface utilisateur et un ensemble de modules qui s'exécutent en tant que processus distincts et communiquent à l'aide de la bibliothèque D-Bus
. Ces modules sont les suivants
-
Boss
- gère la découverte, le cycle de vie et la coordination des modules internes -
Localization
- gère les locales -
Network
- gère le réseau -
Payloads
- gère les données à installer dans différents formats, tels querpm
,ostree
,tar
et d'autres formats d'installation. Les charges utiles gèrent les sources de données pour l'installation ; les sources peuvent varier en format comme CD-ROM, disque dur, NFS, URL, et autres sources -
Security
- gère les aspects liés à la sécurité -
Services
- services de manutention -
Storage
- gère le stockage à l'aide deblivet
-
Subscription
- gère l'outilsubscription-manager
et Insights. -
Timezone
- traite de l'heure, de la date, des zones et de la synchronisation de l'heure. -
Users
- crée des utilisateurs et des groupes.
Chaque module déclare les parties de Kickstart qu'il gère et dispose de méthodes pour appliquer la configuration de Kickstart à l'environnement d'installation et au système installé.
La partie du code Python d'Anaconda (pyanaconda
) démarre en tant que processus "principal" qui possède l'interface utilisateur. Toutes les données Kickstart que vous fournissez sont analysées à l'aide du module pykickstart
et le module Boss
est démarré, il découvre tous les autres modules et les démarre. Le processus principal envoie ensuite les données Kickstart aux modules en fonction de leurs capacités déclarées. Les modules traitent les données, appliquent la configuration à l'environnement d'installation et l'interface utilisateur valide si tous les choix requis ont été faits. Si ce n'est pas le cas, vous devez fournir les données dans un mode d'installation interactif. Une fois que tous les choix requis ont été faits, l'installation peut commencer - les modules écrivent des données sur le système installé.