Comment construire un inventaire ANSIBL au format JSON

Comment construire un inventaire ANSIBL 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 ANSIBL.

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 faire installer un anible sur votre ordinateur.
2) Vous devez avoir au moins 6 hôtes Linux configurés pour ANSIBLE AUTOMATION.

Il existe de nombreux articles sur Linuxhint dédiés à l'installation de Ansible et à la configuration des hôtes pour ANSIBLE AUTOMATION. Vous pouvez les vérifier si nécessaire.

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

Dans cet article, je vais utiliser le code Visual Studio pour modifier le fichier de configuration Ansible, le fichier d'inventaire et les livres de play-books. Vous pouvez utiliser n'importe quel éditeur ou IDE souhaité.

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-Inventory / dans mon MAISON 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 préféré ou IDE.

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

Maintenant, sélectionnez le répertoire du projet JSON-Inventory / 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 anable.CFG.

Ensuite, saisissez les lignes suivantes dans le anable.CFG déposer.

[Par défaut]
Inventaire = hôtes.json
host_key_checking = false

Une fois que vous avez terminé, appuyez sur + S Pour sauver le anable.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 manuels Comme indiqué dans la capture d'écran ci-dessous.

Ajouter des 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 tous section.


"tous":

Dans tous Section, vous ajoutez un héberger Section et ajoutez vos hôtes.


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


Par exemple, vous pouvez ajouter les hôtes VM1.nodekite.com et VM2.nodekite.com dans le hôtes.json Fichier d'inventaire comme suit.


"tous":
"hôtes":
"VM1.nodekite.com ": null,
"VM2.nodekite.com ": null


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

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

$ anible - list-hôtes

Comme vous pouvez le voir, les hôtes que j'ai ajoutés dans mon fichier d'inventaire (VM1.nodekite.com et VM2.nodekite.com) sont répertoriés.

Grouvant les hôtes dans le fichier d'inventaire JSON:

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

Le groupe hôte par défaut dans ANSIBLE est tous. Le tous groupe a tous les hôtes de chaque groupe (y compris les hôtes de tous groupe).

Vous ajoutez des groupes d'accueil dans le enfants Section de votre fichier d'inventaire JSON.


"tous":

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



Par exemple, pour ajouter les hôtes VM3.nodekite.com et VM4.nodekite.com dans le la toile groupe, et pour ajouter les hôtes VM5.nodekite.com et VM6.nodekite.com dans le db groupe, saisissez les lignes suivantes dans votre fichier d'inventaire JSON.


"tous":
"hôtes":
"VM1.nodekite.com ": null,
"VM2.nodekite.com ": null
,
"enfants":
"la toile":
"hôtes":
"VM3.nodekite.com ": null,
"VM4.nodekite.com ": null

,
"db":
"hôtes":
"VM5.nodekite.com ": null,
"VM6.nodekite.com ": null




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.nodekite.com et VM4.nodekite.com dans le la toile groupe.

Les lignes marquées ajoutent les hôtes VM5.nodekite.com et VM6.nodekite.com dans le db groupe.

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

$ anible - list-hôtes

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

Pour répertorier les hôtes disponibles à partir du la toile Groupe uniquement, exécutez la commande suivante:

$ anible - web-hosts list

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

De la même manière, vous pouvez répertorier tous les hôtes disponibles de la db groupe avec la commande suivante:

$ anible - hosts de liste DB

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

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

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

Vous pouvez ajouter des faits mondiaux ou des variables globales dans le varbac section à l'intérieur tous Section de votre fichier d'inventaire JSON comme suit:


"tous":
"hôtes":

,
"vars":
"variable1": "value1",
"variable2": "value2"
,
"enfants":
"la toile":

,
"db":




Par exemple, vous pouvez ajouter les faits / variables globaux webroot et indice dans le varbac Section de votre fichier d'inventaire JSON comme suit:


"tous":
"hôtes":
"VM1.nodekite.com ": null,
"VM2.nodekite.com ": null
,
"vars":
"webroot": "/ var / www / html",
"Index": "Index.php "
,
"enfants":
"la toile":
"hôtes":
"VM3.nodekite.com ": null,
"VM4.nodekite.com ": null

,
"db":
"hôtes":
"VM5.nodekite.com ": null,
"VM6.nodekite.com ": null




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

Pour vérifier si les faits / variables mondiaux fonctionnent, je vais créer un nouveau livre de jeu print_vars1.yaml. Le but de ce manuel 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 manuel print_vars1.yaml dans ton Playbooks / répertoire et tapez dans les lignes suivantes dans votre print_vars1.yaml déposer.

- hôtes: tout
Utilisateur: ANSIBLE
Tâches:
- Nom: imprimez webroot et 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 mondiaux fonctionnent, exécutez le print_vars1.yaml Playbook comme suit:

$ anible-playbook playbooks / print_vars1.yaml

Le playbook devrait fonctionner avec succès.

Faites défiler vers le TÂCHE section. Comme vous pouvez le voir, le webroot et indice Des faits / variables sont appliqués à chaque hôte de mon fichier d'inventaire JSON. Ainsi, les faits / variables mondiaux 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 ajouter la même chose webroot et indice faits dans le la toile Groupe d'accueil de mon fichier d'inventaire JSON. La valeur de ces faits sera différente. Je l'ai fait afin que vous puissiez également comprendre comment fonctionne les faits / priorité variable.

Pour ajouter les faits webroot et indice dans le la toile groupe hôte, ajouter un varbac section dans le la toile Section de votre fichier d'inventaire JSON comme suit:


"tous":
"hôtes":
"VM1.nodekite.com ": null,
"VM2.nodekite.com ": null
,
"vars":
"webroot": "/ var / www / html",
"Index": "Index.php "
,
"enfants":
"la toile":
"hôtes":
"VM3.nodekite.com ": null,
"VM4.nodekite.com ": null
,
"vars":
"webroot": "/ web / public_html",
"Index": "Index.html "

,
"db":
"hôtes":
"VM5.nodekite.com ": null,
"VM6.nodekite.com ": null




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 Playbook comme suit:

$ anible-playbook playbooks / print_vars1.yaml

Comme vous pouvez le voir, les faits du groupe webroot et indice sont disponibles uniquement pour les hôtes VM3.nodekite.com et VM4.nodekite.com, les hôtes dans le la toile groupe.

Remarquez également que les faits du groupe (webroot et indice) a remplacé les faits mondiaux (webroot et indice). Ainsi, vous pouvez dire que les faits du groupe ont une priorité plus élevée que les faits mondiaux.

Ajouter des faits hôtes 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 mondiaux ou de groupe, nous avons gardé la valeur des hôtes nul.

Pour ajouter des faits de l'hôte, remplacer nul avec vos faits hôtes dans le fichier d'inventaire JSON comme suit:

"hôtes":
"host1":
"var1": "valeur1",
"var2": "valeur2",
,
"host2":
"var2": "valeur3",
"var3": "Value4",

Par exemple, pour ajouter le indice Fait hôte au VM5.nodekite.com héberger, remplacer nul avec les faits hôtes comme suit.


"tous":
"hôtes":
"VM1.nodekite.com ": null,
"VM2.nodekite.com ": null
,
"vars":
"webroot": "/ var / www / html",
"Index": "Index.php "
,
"enfants":
"la toile":
"hôtes":
"VM3.nodekite.com ": null,
"VM4.nodekite.com ": null
,
"vars":
"webroot": "/ web / public_html",
"Index": "Index.html "

,
"db":
"hôtes":
"VM5.nodekite.com ":
"Index": "Index.py "
,
"VM6.nodekite.com ": null




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 Playbook comme suit:

$ anible-playbook playbooks / print_vars1.yaml

Comme vous pouvez le voir, le indice Le fait est disponible uniquement pour le VM5.nodekite.com héberger.

Notez également que le fait de l'hôte a remplacé le fait mondial. Les faits / variables hôtes ont la plus haute priorité dans ANIBLE. 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 construire un fichier d'inventaire ANSIBL 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 hôtes dans votre fichier d'inventaire au format JSON.