Ansible

Comment créer un inventaire Ansible au format JSON

Comment créer un inventaire Ansible au format JSON
Par défaut, un fichier d'inventaire Ansible utilise le format de configuration INI. Vous pouvez également utiliser le format de configuration JSON (JavaScript Object Notation) pour les fichiers d'inventaire Ansible.

Dans cet article, je vais vous montrer comment utiliser le format de configuration JSON pour créer les fichiers d'inventaire Ansible. Alors, commençons.

Conditions préalables:

Si vous voulez essayer les exemples de cet article,

1) Vous devez avoir Ansible installé sur votre ordinateur.
2) Vous devez avoir au moins 6 hôtes Linux configurés pour l'automatisation Ansible.

Il existe de nombreux articles sur LinuxHint dédiés à l'installation d'Ansible et à la configuration des hôtes pour l'automatisation d'Ansible. Vous pouvez les consulter si besoin.

Création d'un répertoire de projets :

Dans cet article, je vais utiliser le code Visual Studio pour éditer le fichier de configuration Ansible, le fichier d'inventaire et les playbooks. Vous pouvez utiliser n'importe quel éditeur ou IDE que vous voulez.

Avant de commencer, créons un répertoire de projet afin que nous puissions organiser nos fichiers de projet.

J'ai créé un nouveau répertoire de projet json-inventaire/ dans mon DOMICILE répertoire comme vous pouvez le voir dans la capture d'écran ci-dessous.

Une fois que vous avez créé un nouveau répertoire de projet, ouvrez-le avec votre éditeur de texte ou IDE préféré.

Dans Visual Studio Code, accédez à Déposer > Dossier ouvert… comme indiqué dans la capture d'écran ci-dessous.

Maintenant, sélectionnez le répertoire du projet json-inventaire/ et cliquez sur d'accord.

Le répertoire du projet doit être ouvert avec Visual Studio Code.

Maintenant, cliquez sur Nouveau fichier  et créer un nouveau fichier ansible.cfg.

Ensuite, tapez les lignes suivantes dans le ansible.cfg déposer.

[valeurs par défaut]
inventaire          = hôtes.json
host_key_checking  = False

Une fois que vous avez terminé, appuyez sur + S pour sauver le ansible.cfg déposer.

De la même manière, créez un hôtes.json déposer. Ceci est le fichier d'inventaire JSON. Laissez-le vide pour l'instant. Nous y travaillerons plus tard.

Maintenant, cliquez sur Nouveau dossier  et créer un nouveau répertoire livres de jeu comme le montre la capture d'écran ci-dessous.

Ajout d'hôtes au fichier d'inventaire JSON :

Dans cette section, je vais vous montrer comment ajouter des hôtes à votre fichier d'inventaire au format JSON.

Dans le hôtes.json fichier d'inventaire, vous ajoutez un tout section.


"tout":

Dans tout section, vous ajoutez un hôte section et ajoutez vos hôtes.


"tout":
"hôtes":
"host1": null,
"host2": null


Par exemple, vous pouvez ajouter les hôtes vm1.nœudkite.com et vm2.nœudkite.com dans le hôtes.json fichier d'inventaire comme suit.


"tout":
"hôtes":
"vm1.nœudkite.com": nul,
"vm2.nœudkite.com": nul


Une fois que vous avez terminé, appuyez sur + S pour sauver le hôtes.json déposer.

Vous pouvez vérifier quels hôtes sont disponibles dans votre fichier d'inventaire avec la commande suivante :

$ ansible --list-hosts all

Comme vous pouvez le voir, les hôtes que j'ai ajoutés dans mon fichier d'inventaire (vm1.nœudkite.com et vm2.nœudkite.com) sont répertoriés.

Regroupement des hôtes dans le fichier d'inventaire JSON :

Dans cette section, je vais vous montrer comment regrouper des hôtes dans votre fichier d'inventaire JSON.

Le groupe d'hôtes par défaut dans Ansible est tout. le tout groupe a tous les hôtes de chaque groupe (y compris les hôtes de tout grouper).

Vous ajoutez des groupes d'hôtes dans le enfants section de votre fichier d'inventaire JSON.


"tout":

"enfants":
"groupe 1":
,
"groupe2":



Par exemple, pour ajouter les hôtes vm3.nœudkite.com et vm4.nœudkite.com dans le la toile groupe, et d'ajouter les hôtes vm5.nœudkite.com et vm6.nœudkite.com dans le db groupe, tapez les lignes suivantes dans votre fichier d'inventaire JSON.


"tout":
"hôtes":
"vm1.nœudkite.com": nul,
"vm2.nœudkite.com": nul
,
"enfants":
"la toile":
"hôtes":
"vm3.nœudkite.com": nul,
"vm4.nœudkite.com": nul

,
"db":
"hôtes":
"vm5.nœudkite.com": nul,
"vm6.nœudkite.com": nul




Une fois que vous avez terminé, appuyez sur + S pour sauver le hôtes.json déposer.

Ici, les lignes marquées ajoutent les hôtes vm3.nœudkite.com et vm4.nœudkite.com dans le la toile grouper.

Les lignes marquées ajoutent les hôtes vm5.nœudkite.com et vm6.nœudkite.com dans le db grouper.

Maintenant, vous pouvez répertorier tous les hôtes disponibles dans votre fichier d'inventaire JSON avec la commande suivante :

$ ansible --list-hosts all

Comme vous pouvez le voir, tous les hôtes de chaque groupe (la toile, db, et tout) sont affichés.

Pour lister les hôtes disponibles à partir du la toile groupe uniquement, exécutez la commande suivante :

$ ansible --list-hosts web

Comme vous pouvez le voir, tous les hôtes du la toile groupe sont affichés.

De la même manière, vous pouvez lister tous les hôtes disponibles à partir du db groupe avec la commande suivante :

$ ansible --list-hosts db

Comme vous pouvez le voir, tous les hôtes du db groupe sont affichés.

Ajout de faits globaux dans le fichier d'inventaire JSON :

Dans Ansible, les variables sont aussi appelées faits. Les faits globaux ou les variables globales sont accessibles à partir de chaque hôte de chaque groupe dans votre fichier d'inventaire JSON. Dans cette section, je vais vous montrer comment ajouter des faits globaux ou des variables globales dans ansible.

Vous pouvez ajouter des faits globaux ou des variables globales dans le vars section à l'intérieur tout section de votre fichier d'inventaire JSON comme suit :


"tout":
"hôtes":

,
"vars":
"variable1": "valeur1",
"variable2": "valeur2"
,
"enfants":
"la toile":

,
"db":




Par exemple, vous pouvez ajouter les faits/variables globaux racine Web et indice dans le vars section de votre fichier d'inventaire JSON comme suit :


"tout":
"hôtes":
"vm1.nœudkite.com": nul,
"vm2.nœudkite.com": nul
,
"vars":
"webroot": "/var/www/html",
"index": "index.php"
,
"enfants":
"la toile":
"hôtes":
"vm3.nœudkite.com": nul,
"vm4.nœudkite.com": nul

,
"db":
"hôtes":
"vm5.nœudkite.com": nul,
"vm6.nœudkite.com": nul




Une fois que vous avez terminé, appuyez sur + S pour enregistrer le fichier d'inventaire JSON.

Pour vérifier si les faits/variables globaux fonctionnent, je vais créer un nouveau playbook print_vars1.yaml. Le but de ce playbook est d'imprimer les faits/variables en utilisant le déboguer module d'Ansible. Cela nous aidera également à comprendre la priorité des faits/variables plus tard.

Alors, créez un nouveau playbook print_vars1.yaml dans votre cahiers/ répertoire et tapez les lignes suivantes dans votre print_vars1.yaml déposer.

- hôtes : tous
utilisateur : ansible
Tâches:
- nom : Imprimer la racine Web et l'index
déboguer:
msg : « WebRoot webroot et index index »

Une fois que vous avez terminé, appuyez sur + S pour sauver le print_vars1.yaml déposer.

Pour vérifier si les faits/variables globaux fonctionnent, exécutez la commande print_vars1.yaml livre de jeu comme suit :

$ ansible-playbook playbooks/print_vars1.yaml

Le playbook devrait s'exécuter avec succès.

Faites défiler vers le TÂCHE section. Comme vous pouvez le voir, le racine Web et indice les faits/variables sont appliqués à chaque hôte dans mon fichier d'inventaire JSON. Ainsi, les faits/variables globaux fonctionnent.

Ajout de faits de groupe dans le fichier d'inventaire JSON :

Vous pouvez également ajouter des faits/variables pour un groupe d'hôtes spécifique. Dans cette section, je vais vous montrer comment ajouter des faits/variables de groupe dans votre fichier d'inventaire JSON.

je vais rajouter le même racine Web et indice faits dans le la toile groupe d'hôtes de mon fichier d'inventaire JSON. La valeur de ces faits sera différente. Je l'ai fait pour que vous puissiez également comprendre comment les faits/priorité variable fonctionnent dans Ansible.

Pour ajouter les faits racine Web et indice dans le la toile groupe d'hôtes, ajoutez un vars rubrique dans le la toile section de votre fichier d'inventaire JSON comme suit :


"tout":
"hôtes":
"vm1.nœudkite.com": nul,
"vm2.nœudkite.com": nul
,
"vars":
"webroot": "/var/www/html",
"index": "index.php"
,
"enfants":
"la toile":
"hôtes":
"vm3.nœudkite.com": nul,
"vm4.nœudkite.com": nul
,
"vars":
"webroot": "/web/public_html",
"index": "index.html"

,
"db":
"hôtes":
"vm5.nœudkite.com": nul,
"vm6.nœudkite.com": nul




Une fois que vous avez terminé, appuyez sur + S pour enregistrer le fichier d'inventaire JSON.

Pour vérifier les faits, exécutez le print_vars1.yaml livre de jeu comme suit :

$ ansible-playbook playbooks/print_vars1.yaml

Comme vous pouvez le voir, les faits de groupe racine Web et indice sont disponibles uniquement pour les hôtes vm3.nœudkite.com et vm4.nœudkite.com, les hôtes dans le la toile grouper.

Notez également que les faits de groupe (racine Web et indice) a remplacé les faits globaux (racine Web et indice). Ainsi, vous pouvez dire que les faits de groupe ont une priorité plus élevée que les faits globaux.

Ajout de faits d'hôte dans le fichier d'inventaire JSON :

Vous pouvez également ajouter des faits/variables spécifiques à l'hôte dans votre fichier d'inventaire JSON. Dans cette section, je vais vous montrer comment ajouter des faits/variables spécifiques à l'hôte dans votre fichier d'inventaire JSON.

Pour les faits globaux ou de groupe, nous avons gardé la valeur des hôtes nul.

Pour ajouter des faits sur l'hôte, remplacez nul avec les faits de votre hôte dans le fichier d'inventaire JSON comme suit :

"hôtes":
"hôte1":
"var1": "valeur1",
"var2": "valeur2",
,
"hôte2":
"var2": "valeur3",
"var3": "valeur4",

Par exemple, pour ajouter le indice fait de l'hôte au vm5.nœudkite.com héberger, remplacer nul avec les faits de l'hôte comme suit.


"tout":
"hôtes":
"vm1.nœudkite.com": nul,
"vm2.nœudkite.com": nul
,
"vars":
"webroot": "/var/www/html",
"index": "index.php"
,
"enfants":
"la toile":
"hôtes":
"vm3.nœudkite.com": nul,
"vm4.nœudkite.com": nul
,
"vars":
"webroot": "/web/public_html",
"index": "index.html"

,
"db":
"hôtes":
"vm5.nœudkite.com":
"index": "index.py"
,
"vm6.nœudkite.com": nul




Une fois que vous avez terminé, appuyez sur + S pour enregistrer le fichier d'inventaire JSON.

Pour vérifier les faits disponibles, exécutez le print_vars1.yaml livre de jeu comme suit :

$ ansible-playbook playbooks/print_vars1.yaml

Comme vous pouvez le voir, le indice fait n'est disponible que pour le vm5.nœudkite.com hôte.

Notez également que le fait hôte a remplacé le fait global. Les faits/variables de l'hôte ont la priorité la plus élevée dans Ansible. Ainsi, les faits/variables hôtes remplaceront les faits/variables de groupe et les faits/variables globaux.

Conclusion:

Dans cet article, je vous ai montré comment créer un fichier d'inventaire Ansible au format JSON. Je vous ai montré comment ajouter des hôtes, ajouter des groupes d'hôtes, ajouter des faits globaux, ajouter des faits de groupe et ajouter des faits d'hôte dans votre fichier d'inventaire au format JSON.

Examen de la souris sans fil Microsoft Sculpt Touch
J'ai lu récemment sur le Microsoft Sculpt Touch souris sans fil et j'ai décidé de l'acheter. Après l'avoir utilisé pendant un certain temps, j'ai déci...
Trackpad et pointeur de souris à l'écran AppyMouse pour tablettes Windows
Les utilisateurs de tablettes ratent souvent le pointeur de la souris, surtout lorsqu'ils ont l'habitude d'utiliser les ordinateurs portables. Les sma...
Le bouton central de la souris ne fonctionne pas sous Windows 10
le bouton central de la souris vous aide à faire défiler de longues pages Web et des écrans contenant beaucoup de données. Si cela s'arrête, et bien v...