Personnaliser les installations de logiciels
Les modèles Azure CycleCloud facilitent la configuration des clusters HPC en résumé les détails de l’implémentation de l’infrastructure sous-jacente, ce qui vous permet de vous concentrer sur la gestion des charges de travail. Toutefois, cette charge de travail comporte généralement plusieurs dépendances liées aux logiciels, ce qui nécessite des étapes de personnalisation supplémentaires. Heureusement, Azure CycleCloud fournit également une infrastructure pour implémenter ces étapes par le biais de sa prise en charge de l’approvisionnement et des tâches de gestion de la configuration appliquées directement aux nœuds de cluster.
Vos objectifs incluent la nécessité de déployer des images personnalisées et d’utiliser des scripts de configuration développés en interne que vous avez utilisé dans votre environnement HPC local. Vous souhaitez déterminer comment utiliser les fonctionnalités Azure CycleCloud pour atteindre ces objectifs.
Comment implémenter la gestion de la configuration avec Azure CycleCloud ?
Azure CycleCloud propose trois méthodes principales que vous pouvez combiner de manière arbitraire pour personnaliser le système d’exploitation et les logiciels sur les nœuds de cluster en fonction de vos propres besoins ou préférences :
- Images personnalisées
- Projets
- Cloud-Init
Comment utiliser des images personnalisées avec Azure CycleCloud ?
Azure CycleCloud prend en charge les nœuds de cluster exécutant les distributions Linux les plus courantes et, selon le planificateur, Windows Server. Les modèles intégrés sont préconfigurés avec les valeurs par défaut recommandées, mais vous êtes libre de choisir des images ou des nœuds de la Place de marché Azure en fonction d’images personnalisées. Cette dernière option peut être préférable si vous souhaitez réduire le délai associé à la configuration post-déploiement du système d’exploitation et à toutes les dépendances supplémentaires de vos charges de travail HPC. Il peut également être nécessaire de satisfaire les besoins métier, de sécurité ou de conformité.
Les images personnalisées vous permettent d’avoir un contrôle total sur le logiciel préinstallé et la configuration initiale du système d’exploitation. Leur principal inconvénient est la surcharge associée à la maintenance de plusieurs images pour prendre en charge différentes combinaisons d’applications et de leurs versions, en particulier dans les scénarios de développement.
Comment utiliser des projets Azure CycleCloud pour l’installation de logiciels ?
Un projet Azure CycleCloud est une collection de fichiers que vous référencez lors de la définition de configurations de nœuds de cluster via des modèles. Les projets ont la structure de répertoire suivante :
\project
|- project.ini
|- blobs
|- templates
|- specs
| |
| default
| |- cluster-init
| |- scripts
| |- files
| |- tests
| | - chef
| |- site-cookbooks
| |- data_bag
| |- roles
Le fichier project.ini contient les métadonnées du projet, y compris son nom, son étiquette, sa version et son type. Les types pris en charge incluent le planificateur et l’application. Le premier est utilisé pour installer et initialiser des démons du planificateur sur les nœuds principaux et les nœuds de calcul, tandis que ce dernier définit des charges de travail de cluster.
Le répertoire d’objets blob contient des objets blob de projet, tels que des fichiers binaires pour un projet open source qui peut être redistribué librement et des objets blob utilisateur, qui doivent être exclus de la redistribution du projet en raison de contraintes de licence.
Le répertoire des modèles contient des modèles, tandis que le répertoire de spécifications héberge les spécifications définissant des configurations à appliquer aux nœuds de cluster cibles.
Remarque
Par exemple, un projet Slurm contient, au minimum, deux spécifications : une pour les nœuds principaux du planificateur et l’autre pour les nœuds de calcul.
Dans le répertoire des spécifications, il existe deux sous-répertoires nommés cluster-init et chef personnalisé. Cluster-init contient des scripts qui s’exécutent automatiquement sur le nœud cible. Fichiers de données brutes copiés sur le nœud cible et tests qui seront exécutés lors du démarrage d’un cluster en mode de test. Le sous-répertoire Chef personnalisé contient des fichiers spécifiques à Chef, notamment des livres de recettes, des sacs de données et des fichiers de définition de rôle. Vous pouvez utiliser des livres de cuisine et des recettes Chef pour configurer des nœuds. Les spécifications de « cluster-init » sont mappées à des rôles et des livres de recettes Chef.
Remarque
Azure CycleCloud utilise Chef comme outil de gestion de la configuration pour préparer et configurer chaque nœud. CycleCloud utilise Chef en mode autonome qui ne repose pas sur un serveur Chef centralisé. Au lieu de cela, tous les livres de recettes destinés aux nœuds de cluster gérés sont téléchargés à partir du dépôt au démarrage du système d’exploitation. À ce stade, Chef traite la liste des recettes définies dans les spécifications de cluster-init du nœud, en convertissant efficacement la machine virtuelle sous-jacente en nœud HPC opérationnel.
Pour provisionner un cluster basé sur un projet, vous devez charger le contenu du projet dans un casier Azure CycleCloud. Ensuite, chaque fois que le nœud cible démarre, il télécharge automatiquement les fichiers projet requis à partir du casier et traite les spécifications requises.
Comment utiliser cloud-init avec Azure CycleCloud ?
Azure CycleCloud prend en charge cloud-init comme moyen de configurer des nœuds de cluster pendant la phase de démarrage, avant l’application des spécifications liées au projet. Cela fournit une méthode pratique pour traiter toutes les dépendances liées à l’infrastructure ou aux logiciels, telles que la configuration des paramètres réseau ou l’application de mises à jour de package de système d’exploitation.
Bien que vous puissiez définir la configuration cloud-init à l’aide d’un modèle, vous pouvez également effectuer cette opération directement à partir de l’interface graphique Azure CycleCloud. Lors de la création ou de la modification d’un cluster, vous trouverez les paramètres pertinents sous l’onglet Cloud-Init, où vous pouvez entrer les scripts pour chaque type de nœud.
Remarque
Étant donné que cloud-init s’exécute avant les spécifications de projet CycleCloud, le planificateur et la configuration qu’Azure CycleCloud s’applique à un nœud peuvent remplacer les modifications apportées via cloud-init. Si vous devez vous assurer que vos commandes s’exécutent une fois le planificateur installé, vous devez utiliser les spécifications de projet Azure CycleCloud à la place.