Jump to section

YAML, qu'est-ce que c'est ?

Copier l'URL

Global Tech Trends 2024

Le monde des technologies a connu une transformation numérique rapide, faisant évoluer la priorité que les entreprises accordent à des domaines clés de leur activité. Pour la dixième année, notre rapport Global Tech Trends met en lumière six investissements informatiques ou non informatiques prioritaires, ainsi que trois obstacles majeurs au progrès.

YAML est un langage de sérialisation des données lisible par l'utilisateur qui est souvent utilisé pour coder des fichiers de configuration. Pour certains, YAML est l'acronyme de Yet Another Markup Language, pour d'autres, c'est l'acronyme récursif de YAML Ain't Markup Language (YAML n'est pas un langage de balisage), ce qui souligne que le langage YAML s'utilise pour représenter des données plutôt que des documents.

YAML est un langage de programmation fréquemment utilisé, car il est conçu pour être parfaitement lisible et compréhensible. Il peut également être utilisé en association avec d'autres langages de programmation. En raison de sa flexibilité et de son accessibilité, YAML est utilisé par Ansible pour créer des processus d'automatisation, sous la forme de playbooks Ansible.

Les fichiers YAML utilisent une extension .yml ou .yaml, et suivent des règles de syntaxe spécifiques.

YAML comporte des fonctions issues de Perl, C, XML, HTML et d'autres langages de programmation. Comme il s'agit également d'un surensemble du langage JSON, les fichiers JSON sont des fichiers YAML valides.

Les symboles de formatage habituels, tels que les accolades, les crochets, les balises d'ouverture et de fermeture ou les guillemets, n'existent pas. Les fichiers YAML sont plus faciles à lire, car ils utilisent une indentation de style Python pour définir leur structure et marquer l'imbrication. Les caractères de tabulation ne sont pas autorisés par défaut pour assurer la portabilité sur différents systèmes, alors il faut utiliser des espaces blancs à la place.

Les commentaires sont introduits par le symbole de la livre (£) ou le dièse (#). Il est recommandé d'utiliser les commentaires, car ils décrivent l'intention du code. YAML ne prend pas en charge les commentaires sur plusieurs lignes. Chaque ligne doit être suivie du symbole £.

Les débutants se demandent souvent ce que signifient les trois tirets (---). En YAML, ils marquent le début d'un document, tandis que trois points (...) signalent la fin du document.

Voici un exemple de fichier YAML simple :

 #Comment: This is a supermarket list using YAML #Note that - character represents the list --- food: - vegetables: tomatoes #first list item - fruits: #second list item citrics: oranges tropical: bananas nuts: peanuts sweets: raisins

Notez qu'un fichier YAML est structuré sous la forme d'un mappage ou d'une liste qui respecte une hiérarchie basée sur l'indentation et la définition de vos valeurs clés. Les mappages permettent d'associer des paires clé-valeur. Chaque clé doit être unique, et l'ordre importe peu. Cela ressemble à un dictionnaire Python ou à une affectation de variable dans un script bash.

En YAML, vous devez résoudre un mappage avant de pouvoir le fermer et en créer un nouveau. Il est possible d'établir un nouveau mappage en augmentant le niveau d'indentation, ou en résolvant le précédent et en ouvrant un mappage adjacent.

Une liste répertorie des valeurs dans un ordre donné et peut contenir un grand nombre d'éléments nécessaires. Une séquence de liste commence par un tiret (-) et une espace, et est séparée du parent par une indentation. C'est un peu comme une liste en Python ou un tableau en bash ou en Perl. Une liste peut être intégrée dans un mappage.

Dans l'exemple ci-dessus, « vegetables » et « fruits » représentent les éléments de la liste « food ».

YAML comporte également des scalaires, qui sont des données arbitraires (codées en Unicode) pouvant être utilisées comme valeurs, telles que des chaînes, des entiers, des dates, des nombres ou des booléens.

Lors de la création d'un fichier YAML, il faut respecter ces règles de syntaxe et vérifier que le fichier est valide. Pour vous aider, utilisez des outils qui vérifient la syntaxe d'un fichier, les lints. La commande yamllint permet de s'assurer que le fichier YAML créé est valide avant de pouvoir le transférer vers une application.

Voici un exemple de fichier YAML simple du dossier d'un étudiant illustrant les règles syntaxiques:

 #Comment: Student record #Describes some characteristics and preferences --- name: Martin D'vloper #key-value age: 26 hobbies: - painting #first list item - playing_music #second list item - cooking #third list item programming_languages: java: Intermediate python: Advanced javascript: Beginner favorite_food: - vegetables: tomatoes - fruits: citrics: oranges tropical: bananas nuts: peanuts sweets: raisins 

Si nous traduisons ce fichier en Python en utilisant la bibliothèque PyYAML, nous obtenons la structure de données suivante :

 [ { "name": "Martin D'vloper", "age": 26, "hobbies": ["painting", "playing_music", "cooking"], "programming_languages": { "java": "Intermediate", "python": "Advanced", "javascript": "Beginner", }, "favorite_food": [ {"vegetables": "tomatoes"}, { "fruits": { "citrics": "oranges", "tropical": "bananas", "nuts": "peanuts", "sweets": "raisins", } }, ], } ]

Le langage YAML est principalement utilisé pour créer des fichiers de configuration. Il est recommandé de coder les fichiers de configuration en YAML plutôt qu'en JSON, car même si ces langages peuvent être utilisés de manière interchangeable dans la plupart des cas, YAML reste plus facile à lire et à utiliser.  

En plus de son utilisation dans Ansible, YAML sert pour les ressources et les déploiements Kubernetes. 

L'un des avantages de ce langage est que les fichiers YAML peuvent être ajoutés au système de contrôle du code source, tel que GitHub, afin que les modifications puissent être suivies et vérifiées.

Quelle est la différence entre Ansible et Red Hat Ansible Automation Platform ?

YAML dans Ansible

Les playbooks Ansible servent à orchestrer des processus informatiques. Un playbook est un fichier YAML qui contient un ou plusieurs plays (jeux de tâches) et qui permet de définir l'état souhaité d'un système. 

Chaque play peut exécuter une ou plusieurs tâches, et chaque tâche invoque un module Ansible. Ces modules accomplissent les tâches d'automatisation dans Ansible, dans n'importe quel langage capable de renvoyer une réponse au format JSON, notamment Ruby, Python ou bash.

Un playbook Ansible se compose de mappages et de listes. Pour créer un playbook, il faut commencer par une liste YAML qui désigne le play puis répertorie les tâches dans un ordre précis. N'oubliez pas que l'indentation n'est pas une indication de l'héritage logique. Considérez que chaque ligne correspond à un type de données YAML (une liste ou un mappage).

En s'appuyant sur des modèles YAML, les utilisateurs d'Ansible peuvent automatiser des tâches répétitives sans avoir à apprendre un langage de programmation avancé.

Les développeurs peuvent également utiliser la commande ansible-lint, un linter YAML pour Ansible Playbooks, pour identifier les erreurs afin qu'elles ne se produisent pas pendant une étape critique du fonctionnement.

Le service d'IA génératif Ansible Lightspeed avec IBM Watson Code Assistant permet aux développeurs de créer du contenu d'automatisation Ansible de manière plus efficace. L'outil permet aux utilisateurs de saisir une requête de tâche en anglais vernaculaire et d'obtenir des recommandations de codes syntaxiquement corrects et reconnus par YAML pour des tâches d'automatisation qui seront ensuite utilisées pour créer des playbooks Ansible.

YAML pour Kubernetes

Kubernetes fonctionne sur la base d'un état défini et d'un état réel. Les objets Kubernetes représentent l'état d'un cluster. Ils indiquent à Kubernetes ce à quoi vous voulez que la charge de travail ressemble. Il est possible de créer des ressources Kubernetes, telles que des pods, des objets et des déploiements, à l'aide de fichiers YAML. 

Lors de la création d'un objet Kubernetes, il faut ajouter des spécifications pour définir l'état souhaité de l'objet. L'API Kubernetes peut être utilisée pour créer l'objet. La requête adressée à l'API comprendra les spécifications de l'objet en JSON, mais le plus souvent, il faudra fournir les informations requises à l'outil kubectl sous la forme d'un fichier YAML. kubectl se chargera de convertir le fichier en YAML lorsqu'il interrogera l'API.

Une fois qu'un objet a été créé et défini, Kubernetes veille à ce qu'il soit toujours présent. 

Les développeurs ou administrateurs système spécifient l'état défini à l'aide des fichiers YAML ou JSON qu'ils soumettent à l'API Kubernetes. Kubernetes utilise un contrôleur pour comparer le nouvel état défini et l'état réel du cluster.

Parce qu'elle utilise le langage d'automatisation YAML facilement lisible par l'homme, la solution

Red Hat Ansible Automation Platform permet aux utilisateurs d'une entreprise de partager, corriger et gérer facilement les contenus d'automatisation. Elle comprend tous les outils nécessaires à la mise en œuvre de l'automatisation à l'échelle de l'entreprise, notamment des playbooks et des outils d'analyse. Elle permet aussi aux utilisateurs de centraliser et contrôler leur infrastructure informatique au moyen d'un tableau de bord visuel, du contrôle d'accès basé sur les rôles et de nombreuses autres fonctions, avec à la clé une réduction de la complexité opérationnelle.

Avec une souscription Red Hat, vous bénéficiez de contenus certifiés, d'un écosystème de partenaires robuste, d'un accès à des services de gestion hébergés et d'une assistance technique tout au long du cycle de vie qui permet à vos équipes de créer, gérer et faire évoluer les processus automatisés dans l'ensemble de votre entreprise. En outre, vous profiterez de l'expertise que nous avons acquise grâce à nos réussites auprès de milliers de clients.

Red Hat OpenShift est une plateforme Kubernetes conçue pour les entreprises. Elle inclut de nombreuses technologies supplémentaires qui font de Kubernetes un outil puissant et viable pour les entreprises, notamment : les registres, la mise en réseau, la télémétrie, la sécurité, l'automatisation et les services.

Avec Red Hat OpenShift, les développeurs peuvent créer des applications conteneurisées, les héberger et les déployer dans le cloud rapidement et facilement grâce à de bons niveaux d'évolutivité, de contrôle et d'orchestration.

Combien de temps pouvez-vous gagner grâce à l'automatisation ?

Répondez à quelques questions rapides pour découvrir le temps que vous pourriez économiser en adoptant Ansible Automation Platform dans votre entreprise.

Lire la suite

Article

Apprendre les bases d'Ansible

Ansible permet d'automatiser les processus informatiques tels que le provisionnement et la gestion des configurations. Apprenez les bases d'Ansible en lisant cette présentation des concepts clés.

Article

La gestion des processus métier, qu'est-ce que c'est ?

La gestion des processus métier est une pratique de modélisation, d'analyse et d'optimisation des processus métier de bout en bout qui vous permet d'atteindre vos objectifs métier stratégiques.

Article

Red Hat, un partenaire de choix en matière d'automatisation

La solution Red Hat Ansible Automation Platform comprend tous les outils nécessaires au partage des processus d'automatisation entre les équipes et à la mise en œuvre de l'automatisation à l'échelle de l'entreprise.

En savoir plus sur l'automatisation

Produits

Contrats avec des conseillers stratégiques qui prennent en considération tous les tenants et les aboutissants de votre entreprise, analysent les défis auxquels vous êtes confrontés et vous aident à les relever avec des solutions complètes et économiques.

Plateforme pour la mise en œuvre de l'automatisation à l'échelle de l'entreprise, quelle que soit votre situation.

Ressources

Formations

Cours gratuit

L'essentiel d'Ansible : automatiser en toute simplicité – Présentation technique

Cours gratuit

Red Hat Ansible Automation pour SAP