Référence des formats de fichiers de configuration : INI, ENV, PLIST, HCL, etc.
Dans le développement logiciel et l'administration système modernes, nous manipulons des dizaines de formats de fichiers de configuration différents. Alors que JSON, YAML et TOML sont les favoris actuels de l'industrie, de nombreuses autres extensions persistent dans des écosystèmes spécifiques comme les systèmes Linux, le registre Windows, Apple macOS, Java et l'Infrastructure-as-Code (IaC).
Ce guide de référence couvre les extensions de fichiers de configuration "héritées" et spécialisées les plus courantes que vous rencontrerez.
Table de référence rapide : Formats de fichiers de configuration
| Extension | Nom complet | Écosystème | Type de syntaxe |
|---|---|---|---|
.ini, .conf, .cfg |
Initialisation / Configuration | Linux, Windows, PHP, Python | Clé-Valeur / Sections |
.env |
Variables d'environnement | Dév Web (Node.js, Docker, Python) | Clé=Valeur |
.properties |
Propriétés Java | Java, Spring, Android | Clé=Valeur (ou XML) |
.plist |
Liste de propriétés | macOS, iOS, Apple | XML ou Binaire |
.hcl, .tf, .tfvars |
HashiCorp Configuration Language | Terraform, Nomad, Consul | Langage spécifique au domaine (DSL) |
.ovpn, .wg |
Config OpenVPN / WireGuard | Réseautage, VPN | Basé sur des directives |
1. Configuration système et héritée (.ini, .conf, .cfg)
Ce sont les "grands-pères" des fichiers de config. Ils sont simples, textuels et lisibles par l'homme.
- Fichiers INI : Souvent utilisés sous Windows et dans les anciens logiciels. Ils utilisent des
[Sections]pour regrouper les paires clé-valeur.[database] host = 127.0.0.1 port = 5432 - CONF / CFG : Principalement utilisés dans les répertoires
/etc/de Linux (ex:nginx.conf,redis.conf). La syntaxe varie : certains utilisent des paires Clé-Valeur simples, tandis que d'autres utilisent des accolades ou des directives personnalisées.
2. Variables d'environnement (.env)
Le fichier .env est un standard dans le développement web moderne pour stocker les "secrets" et les paramètres spécifiques à l'environnement (comme les URL de base de données ou les clés d'API) qui ne doivent pas être commis sur Git.
- Syntaxe : Format
CLE=VALEURextrêmement simple. - Bonne pratique : Ne commettez jamais le fichier
.envdans le contrôle de source. Utilisez un fichier.env.exampleà la place pour montrer les variables requises.
3. Entreprise et Java (.properties)
Utilisé par la Machine Virtuelle Java (JVM) depuis des décennies. Il est similaire à un fichier .env mais supporte des échappements plus complexes et peut même être formaté en XML.
- Utilisation courante :
application.propertiesdans les applications Spring Boot. - Syntaxe :
database.url=jdbc:mysql://localhost:3306/db
4. L'écosystème Apple (.plist)
Les listes de propriétés (Property Lists) sont le standard pour les applications macOS et iOS. Elles stockent les préférences utilisateur et les métadonnées de l'application (comme Info.plist).
- Formats : Elles peuvent être stockées en XML lisible par l'homme ou en fichiers Binaires optimisés.
- Comment les visualiser : Utilisez l'"Éditeur de liste de propriétés" sur macOS ou convertissez-les en JSON à l'aide de l'outil en ligne de commande
plutil.
5. Infrastructure as Code (.hcl, .tf, .tfvars)
HCL a été créé par HashiCorp pour combler le fossé entre le YAML lisible par l'homme et le JSON lisible par la machine. C'est le langage principal de Terraform.
- HCL : Très expressif, supportant les commentaires, les variables et les fonctions.
- TF : Spécifiquement pour les définitions de ressources Terraform.
- TFVARS : Utilisé pour passer des valeurs de variables dans les plans Terraform.
6. Réseautage et VPN (.ovpn, .wg)
Si vous avez déjà configuré une connexion sécurisée, vous avez vu ceux-là :
- OVPN : Un fichier complexe de type script contenant les adresses des serveurs OpenVPN, les informations de port et souvent des certificats intégrés (
<ca>,<cert>,<key>). - WG : La configuration WireGuard, plus simple. Elle utilise un format propre de style INI pour définir
[Interface]et[Peer].
Outils pour travailler avec les fichiers de config
- Éditeurs : VS Code, Sublime Text et les IDE JetBrains disposent de plugins pour presque tous les formats listés ci-dessus afin de fournir la coloration syntaxique et la validation.
- Convertisseurs CLI :
yq: Un processeur portable en ligne de commande pour YAML, JSON, XML, CSV et TOML (similaire àjq).plutil: Intégré à macOS pour convertir les fichiers.plist.terraform fmt: Pour formater les fichiers.tfet.hcl.
Questions courantes (FAQ)
Q : Puis-je utiliser des commentaires dans un fichier .env ?
R : La plupart des analyseurs .env (comme dotenv dans Node.js) supportent les commentaires commençant par #. Cependant, il est plus sûr de mettre les commentaires sur leurs propres lignes plutôt qu'en fin de ligne.
Q : Comment convertir un .plist binaire en XML ?
R : Sur macOS, vous pouvez exécuter : plutil -convert xml1 filename.plist.
Q : Pourquoi mon fichier .ini a-t-il des [crochets] ?
R : Les crochets dénotent une Section. Ils vous permettent de regrouper des paramètres liés, évitant ainsi les collisions de noms (ex : avoir un port sous [http] et un port différent sous [ssh]).
Q : Le format .hcl est-il compatible avec JSON ?
R : Oui ! HCL est conçu pour être entièrement compatible avec JSON. Vous pouvez en fait écrire vos fichiers Terraform en .tf.json si vous préférez (bien que ce soit moins lisible pour les humains).
Outils associés sur Tool3M
- Formateur JSON : Formatez et validez vos fichiers de configuration JSON.
- Convertisseur YAML en JSON : Découvrez la relation entre les formats de données courants.