Comment utiliser des stocks statiques et dynamiques dans ANSIBLE - Partie 4
- 3566
- 1114
- Noa Faure
Dans ce Partie 4 de la série ANSIBLE, nous expliquerons comment utiliser des stocks statiques et dynamiques pour définir des groupes d'hôtes dans ANSIBLE.
Dans un Anable, hôtes ou serveurs gérés qui sont contrôlés par le Node de contrôle anable sont définis dans un Fichier d'inventaire d'hôte comme expliqué dans. Un fichier d'inventaire d'hôte est un fichier texte qui se compose noms d'hôtes ou Adresses IP d'hôtes gérés ou de serveurs distants.
Hôtes gérés peut être répertorié comme des entrées individuelles ou classé sous un nom de groupe comme nous le verrons plus tard. Dans Ansible, il existe deux types de fichiers d'inventaire: Statique et Dynamique.
Jetons un coup d'œil à chacun d'entre eux et voyons comment nous pouvons les gérer. À ce jour, nous supposons que vous avez déjà installé ANNIBLE sur votre nœud de contrôle et configuré la connexion SSH sans mot de passe à vos hôtes gérés.
Fichier d'inventaire hôte statique
Dans Anable, Un fichier d'inventaire statique est un fichier texte brut qui contient une liste d'hôtes gérés déclarés sous un groupe d'hôtes en utilisant des noms d'hôte ou des adresses IP.
Un nom de groupe d'hôtes est enfermé dans des crochets I.e [nom de groupe]
. Les entrées hôtes gérées sont plus tard répertoriées sous le nom du groupe, chacune sur sa propre ligne. Comme discuté précédemment, les hôtes sont répertoriés à l'aide de noms d'hôtes ou d'adresses IP.
[nom de groupe] Hébergez un hôte ip_address b ip_address hôte c ip_address
Aux fins de l'illustration, nous créerons un fichier d'inventaire statique.
# MKDIR TEST_LAB && CD Test_Lab # HOSTS VIMFichier d'inventaire statique
[Webservers] 173.82.115.165 [database_servers] 173.82.220.239 [Datacenter: Enfants] Database de serveurs webServers_Servers
Enregistrer le fichier et quitter.
Comme vous pouvez le voir dans le fichier d'inventaire ci-dessus, nous avons créé 2 groupes d'accueil: serveurs Web et base de données_servers. De plus, nous avons créé un groupe supplémentaire appelé centre de données qui comprend un groupe de groupes d'hôtes désignés par ': enfants'
suffixe comme vu ci-dessus.
ANIBLE permet également de placer des groupes d'hôtes sous un nom de groupe. Dans le fichier d'inventaire ci-dessus, le serveurs Web et base de données_servers Des groupes ont été placés sous le centre de données.
NOTE: Il n'est pas obligatoire de placer des hôtes gérés dans un groupe d'accueil. Vous pouvez simplement les énumérer en utilisant leurs noms d'hôte ou leurs adresses IP par exemple.
173.82.202.239 172.82.115.165 Load_Balancer.PNL.com
Utilisons maintenant quelques commandes ANSIBL pour référencer le fichier d'inventaire de l'hôte. La syntaxe de base pour la gestion des stocks est comme indiqué.
$ anible hôte-sattern -i / path / of / inventory / fichier - list-hosts
Par exemple,
$ anible all -i / root / test_labs / hôtes - hôtes de listeListe des hôtes anibles
Alternativement, vous pouvez utiliser le caractère générique *
remplacer 'tous'
argument.
$ anible * -i / root / test_labs / hôtes - hôtes de listeListe des hôtes anibles en utilisant des jilèges
Pour répertorier les hôtes dans un groupe, spécifiez le groupe d'accueil à la place de l'hôte.
$ anible webservers -i / root / test_labs / hosts - list-hôtesListe des hôtes anibles en groupe
Fichier d'inventaire dynamique de l'hôte
Dans une configuration - en particulier une configuration de cloud telle que AWS Lorsque le fichier d'inventaire continue de changer constamment lorsque vous ajoutez ou de la mise en panne des serveurs, garder des onglets sur les hôtes définis dans le fichier d'inventaire devient un véritable défi. Il devient gênant de revenir au fichier hôte et de mettre à jour la liste des hôtes avec leurs adresses IP.
Et c'est là qu'un inventaire dynamique vient jouer. Alors qu'est-ce qu'un inventaire dynamique? Un inventaire dynamique est un script écrit en Python, PHP ou tout autre langage de programmation. Il est utile dans des environnements cloud tels que AWS où les adresses IP changent une fois qu'un serveur virtuel est arrêté et recommencé.
Anible a déjà développé des scripts d'inventaire pour les plates-formes de cloud public telles que Google Compute Engine, Amazon EC2 Instance, OpenStack, Rackspace, Cobbler, entre autres.
Quels sont les avantages d'un inventaire dynamique sur un inventaire statique?
- Les stocks dynamiques font un travail parfait pour réduire l'erreur humaine à mesure que les informations sont recueillies à l'aide de scripts.
- Un effort minimal est requis pour gérer les stocks.
Vous pouvez écrire votre propre inventaire dynamique de personnalisation dans un langage de programmation de votre choix. L'inventaire doit renvoyer un format dans JSON lorsque des options appropriées sont passées.
Utiliser un script d'inventaire dynamique existant
Un script utilisé pour créer un inventaire dynamique doit être fait exécutable afin qu'Anible puisse l'utiliser.
Pour récupérer des informations sur les hôtes à l'intérieur d'un script d'inventaire dynamique, exécutez simplement.
# ./ script - liste
Comme indiqué plus tôt, la sortie doit être en JSON dans le format ci-dessous.
Un dictionnaire comprenant des groupes (i.e webservers, database_servers)
- Une liste d'hôtes gérés par groupe
- Un dictionnaire de variables
Méta-dictionnaire
- Hôtes et hôtes
Échantillon de sortie
"webservers": "hosts": ["webserver1.exemple.com "," webserver2.exemple.com "]," vars ": ," database_servers ": " hôte ": [" mysql_db1 "," mysql_db2 "]," vars ": ," _meta ": " hostvars ": " mysql_db2 ": ," webserver2.exemple.com ": ," webserver1.exemple.com ": ," mysql_db1 ":
Conclusion
Dans cet article, nous avons démontré comment créer des stocks statiques et dynamiques. En résumé, un fichier d'inventaire statique est un fichier texte brut contenant une liste d'hôtes gérés ou de nœuds distants dont les nombres et les adresses IP restent assez constants.
D'un autre côté, un fichier hôte dynamique continue de changer lorsque vous ajoutez de nouveaux hôtes ou les anciens de la décommission. Les adresses IP des hôtes sont également dynamiques lorsque vous vous arrêtez et démarrez de nouveaux systèmes d'hôtes. Nous espérons que vous avez trouvé ce tutoriel informatif.