Ansible

Comment utiliser les faits personnalisés Ansible

Comment utiliser les faits personnalisés Ansible
Les faits sont comme des variables dans Ansible. Ansible génère beaucoup de faits, selon l'hôte qu'il automatise. Si vous en avez besoin, vous pouvez également définir des faits/variables personnalisés dans Ansible.

Vous pouvez définir trois types de faits personnalisés dans Ansible.

1) Faits mondiaux : Ces faits sont accessibles depuis chaque hôte de votre fichier d'inventaire.
2) Faits de groupe : Ces faits ne sont accessibles qu'à partir d'un ensemble spécifique d'hôtes ou d'un groupe d'hôtes.
3) Informations sur l'hôte : Ces faits ne sont accessibles qu'à partir d'un hébergeur particulier.

Dans cet article, je vais vous montrer comment travailler avec les faits personnalisés 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.

Configuration d'un répertoire de projet :

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

Pour créer un répertoire de projet faits-personnalisés/ dans votre DOMICILE répertoire, exécutez la commande suivante :

$ mkdir -pv custom-facts/playbooks,host_vars,group_vars

Maintenant, naviguez jusqu'au faits-personnalisés/ répertoire comme suit :

$ cd faits-personnalisés/

Créer un fichier de configuration Ansible ansible.cfg dans votre répertoire de projet comme suit :

$ nano ansible.cfg

Tapez dans les lignes suivantes votre ansible.cfg déposer.

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

Une fois que vous avez terminé, appuyez sur + X suivie par Oui et pour sauver le ansible.cfg fichier de configuration.

Maintenant, créez un fichier d'inventaire Ansible hôtes dans votre répertoire de projet comme suit :

$ nano hôtes

Tapez les lignes suivantes dans votre l'hôte fichier d'inventaire.

vm1.nœudkite.com
vm2.nœudkite.com
[la toile]
vm3.nœudkite.com
vm4.nœudkite.com
[base de données]
vm[5:6].nœudkite.com

Une fois que vous avez terminé, appuyez sur + X suivie par Oui et pour sauver le hôtes fichier d'inventaire.

Pour répertorier tous les hôtes disponibles dans votre fichier d'inventaire, exécutez la commande suivante :

$ ansible all --list-hosts

Comme vous pouvez le voir, j'ai six hôtes dans mon fichier d'inventaire.

Pour lister les hôtes disponibles dans le la toile groupe de votre fichier d'inventaire, exécutez la commande suivante :

$ ansible web --list-hosts

Comme vous pouvez le voir, j'ai deux hôtes (vm3.nœudkite.com et vm4.nœudkite.com) dans le la toile groupe de mon fichier d'inventaire.

Pour lister les hôtes disponibles dans le base de données groupe de votre fichier d'inventaire, exécutez la commande suivante :

$ base de données ansible --list-hosts

Comme vous pouvez le voir, j'ai deux hôtes (vm5.nœudkite.com et vm6.nœudkite.com) dans le base de données groupe de mon fichier d'inventaire.

Travailler avec Ansible Global Facts :

Dans cette section, je vais vous montrer comment définir des faits/variables globaux Ansible dans votre fichier d'inventaire et y accéder à partir de vos playbooks Ansible. Je vais également vous montrer comment définir des faits/variables globaux dans un fichier séparé.

Tout d'abord, ouvrez le l'hôte fichier d'inventaire avec la commande suivante :

$ nano hôtes

Maintenant, ajoutez les lignes marquées dans votre l'hôte fichier d'inventaire. Une fois que vous avez terminé, appuyez sur + X suivie par Oui et pour enregistrer le fichier.

'

Vous ajoutez des faits globaux dans le tout:vars section. Ici, j'ai ajouté le URL_web fait mondial.

Maintenant, créez un nouveau playbook print_global_fact.yaml dans le cahiers/ répertoire comme suit :

$ nano playbooks/print_global_fact.yaml

Ensuite, tapez les lignes suivantes dans le print_global_fact.yaml déposer.

- hôtes : tous
utilisateur : ansible
Tâches:
- name : affiche la valeur du fait global 'web_url'
déboguer:
msg : "URL Web : web_url"

Le but de ce playbook est d'imprimer le URL_web fait mondial.

Une fois que vous avez terminé, appuyez sur + X suivie par Oui et pour sauver le print_global_fact.yaml déposer.

Maintenant, lancez le print_global_fact.yaml livre de jeu comme suit :

$ ansible-playbook playbooks/print_global_fact.yaml

Comme vous pouvez le voir, tous les hôtes de mon fichier d'inventaire peuvent accéder au fait global URL_web.

Vous pouvez également ajouter des faits globaux dans un fichier séparé. De cette façon, vous pouvez garder le fichier d'inventaire propre. Voyons comment faire.

Tout d'abord, retirons les faits globaux de la l'hôte fichier d'inventaire.

$ nano hôtes

Maintenant, supprimez les lignes marquées du fichier d'inventaire et appuyez sur + X, suivie par Oui et pour enregistrer le fichier d'inventaire.

Ensuite, créez un nouveau fichier tout dans le var_groupe/ répertoire comme suit :

$ nano group_vars/all

Pour ajouter le fait global URL_web, tapez la ligne suivante dans le vars_groupe/tous déposer.

URL_web : https://www.astuce linux.com

Une fois que vous avez terminé, appuyez sur + X suivie par Oui et pour sauver le vars_groupe/tous déposer.

Pour vérifier si vous pouvez accéder au fait global URL_web, exécuter le print_global_fact.yaml playbook à nouveau comme suit :

$ ansible-playbook playbooks/print_global_fact.yaml

Comme vous pouvez le voir, tous les hôtes de mon fichier d'inventaire peuvent accéder au fait global URL_web.

Travailler avec Ansible Group Facts :

Dans cette section, je vais vous montrer comment définir des faits/variables de groupe Ansible dans votre fichier d'inventaire et y accéder à partir de vos playbooks Ansible. Je vais également vous montrer comment définir des faits/variables de groupe dans un fichier séparé.

Tout d'abord, ouvrez le l'hôte fichier d'inventaire avec la commande suivante :

$ nano hôtes

Si vous avez un groupe d'accueil groupe 1, puis vous ajoutez des faits/variables de groupe pour ce groupe d'hôtes dans un groupe1:vars section de votre fichier d'inventaire.

[groupe 1]

[groupe1:vars]
variable1=valeur1
variable2=valeur2

Par exemple, pour ajouter le groupe faits/variables nom de domaine et bases de données_backends pour le la toile groupe d'hôtes, vous pouvez saisir les lignes marquées dans votre fichier d'inventaire.

Une fois que vous avez terminé, appuyez sur + X suivie par Oui et pour enregistrer le fichier d'inventaire.

Pour imprimer et tester si nous pouvons accéder aux faits du groupe, créez un nouveau playbook print_group_facts.yaml dans le cahiers/ répertoire comme suit :

$ nano playbooks/print_group_facts.yaml

Tapez les lignes suivantes dans votre print_group_facts.yaml déposer.

- hébergeurs : web
utilisateur : ansible
Tâches:
- nom : Imprimer les faits du groupe
déboguer:
msg : "Nom de domaine : domain_name Base de données principale : database_backend"

Une fois que vous avez terminé, appuyez sur + X suivie par Oui et pour sauver le print_group_facts.yaml déposer.

Maintenant, lancez le print_group_facts.yaml livre de jeu comme suit :

$ ansible-playbook playbooks/print_group_facts.yaml

Comme vous pouvez le voir, les hôtes du la toile le groupe peut accéder au nom de domaine et base de données_backend faits/variables de groupe.

Maintenant, nettoyons le fichier d'inventaire et voyons comment ajouter des faits/variables de groupe dans un fichier séparé.

Tout d'abord, ouvrez le l'hôte fichier d'inventaire comme suit :

$ nano faits

Supprimez les lignes marquées du l'hôte fichier d'inventaire. Une fois que vous avez terminé, appuyez sur + X suivie par Oui et pour sauver le hôtes fichier d'inventaire.

Comme nous ajoutons des variables de groupe pour le la toile groupe d'hôtes, créer un nouveau fichier la toile (identique au nom du groupe) dans le var_groupe/ répertoire comme suit :

$ nano group_vars/web

Pour ajouter les faits du groupe nom de domaine et base de données_backend pour le la toile groupe d'hôtes, ajoutez les lignes suivantes dans le vars_groupe/web déposer.

nom_domaine : web.astuce linux.com
database_backend : pgsql

Une fois que vous avez terminé, appuyez sur + X suivie par Oui et pour sauver le vars_groupe/web déposer.

Pour vérifier si les hôtes du la toile groupe peut accéder aux faits du groupe, exécuter le print_group_facts.yaml livre de jeu comme suit :

$ ansible-playbook playbooks/print_group_facts.yaml

Comme vous pouvez le voir, les hôtes du la toile le groupe peut accéder au nom de domaine et base de données_backend faits/variables de groupe.

Travailler avec Ansible Host Facts :

Dans cette section, je vais vous montrer comment définir les faits/variables de l'hôte Ansible dans votre fichier d'inventaire et y accéder à partir de vos playbooks Ansible. Je vais également vous montrer comment définir les faits/variables de l'hôte dans un fichier séparé.

Tout d'abord, ouvrez le l'hôte fichier d'inventaire avec la commande suivante :

$ nano hôtes

Vous pouvez ajouter des faits/variables d'hôte après le nom DNS ou l'adresse IP de l'hôte dans votre fichier d'inventaire comme suit :

www.domaine1.com      variable1=valeur1       variable2=valeur2
192.168.22.2         variable1=valeur3       variable2=valeur4

Par exemple, vous pouvez ajouter des faits/variables d'hôte nom de domaine et base de données_backend pour les hôtes vm3.nœudkite.com et vm4.nœudkite.com, comme indiqué dans la capture d'écran ci-dessous.

Notez que la valeur de la nom de domaine et base de données_backend les faits/variables sont différents pour chaque hôte.

Une fois que vous avez terminé d'ajouter les faits/variables de l'hôte, appuyez sur + X, suivie par Oui et pour sauver le l'hôte fichier d'inventaire.

Comme j'ai ajouté les mêmes faits/variables que dans l'exemple de faits/variables de groupe, nous pouvons utiliser le print_group_facts.yaml playbook pour tester l'accessibilité de ces faits/variables ainsi.

Exécutez le print_group_facts.yaml livre de jeu comme suit :

$ ansible-playbook playbooks/print_group_facts.yaml

Comme vous pouvez le voir, les faits/variables de l'hôte sont accessibles à leur hôte spécifié. Les valeurs sont également différentes pour chaque hôte.

Comme chacun des hôtes se trouve sur une ligne distincte dans mon fichier d'inventaire, je pourrais facilement ajouter des faits/variables d'hôte dans mon fichier d'inventaire. Mais, si vous utilisez des plages pour définir des hôtes dans votre fichier d'inventaire comme indiqué dans la capture d'écran ci-dessous, vous ne pouvez pas ajouter de faits/variables d'hôte comme ça.

Vous pouvez ajouter des faits/variables d'hôte dans un fichier séparé, comme vous l'avez fait pour les faits/variables globaux et de groupe.

Pour ajouter des faits/variables d'hôte pour le vm5.nœudkite.com hôte, créez un nouveau fichier vm5.nœudkite.com (identique au nom DNS de l'hôte) dans le host_vars/ répertoire comme suit :

$ nano host_vars/vm5.nœudkite.com

Vous pouvez ajouter les faits/variables de l'hôte db_port et nom_base pour l'hôte vm5.nœudkite.com avec les lignes suivantes.

db_port : 3306
nom_base : demo1

Une fois que vous avez terminé, appuyez sur + X suivie par Oui et pour sauver le vm5.nœudkite.com déposer.

De la même manière, pour ajouter des faits/variables d'hôte pour l'hôte vm6.nœudkite.com, créer un nouveau fichier vm6.nœudkite.com dans le host_vars/ répertoire comme suit :

$ nano host_vars/vm6.nœudkite.com

Vous pouvez ajouter les faits/variables de l'hôte db_port et nom_base pour l'hôte vm6.nœudkite.com avec les lignes suivantes.

db_port : 8877
nom_base : app1

Une fois que vous avez terminé, appuyez sur + X suivie par Oui et pour sauver le vm6.nœudkite.com déposer.

Pour imprimer et tester si nous pouvons accéder aux faits/variables de l'hôte, créez un nouveau playbook print_host_facts.yaml dans le cahiers/ répertoire comme suit :

$ nano playbooks/print_host_facts.yaml

Maintenant, tapez les lignes suivantes dans le print_host_facts.yaml déposer.

- hôtes : base de données
utilisateur : ansible
Tâches:
- nom : Imprimer les informations sur l'hôte
déboguer:
msg : "Nom de la base de données : db_name Port de la base de données : db_port"

Une fois que vous avez terminé, appuyez sur + X suivie par Oui et pour sauver le print_host_facts.yaml déposer.

Pour vérifier si l'hôte vm5.nœudkite.com et vm6.nœudkite.com peut accéder aux faits/variables de l'hôte, exécutez le print_host_facts.yaml livre de jeu comme suit :

$ ansible-playbook playbooks/print_host_facts.yaml

Comme vous pouvez le voir, les hôtes vm5.nœudkite.com et vm6.nœudkite.com peut accéder au nom_base et db_port faits/variables de l'hôte.

Rassembler le tout : la priorité des faits Ansible

Dans cette section, je vais parler du fait Ansible/priorité variable. Alors, commençons.

Avant de commencer, nettoyons le fichier d'inventaire.

Ouvrez le l'hôte fichier d'inventaire avec la commande suivante :

$ nano hôtes

Supprimer la section marquée du fichier d'inventaire.

Voici à quoi devrait ressembler votre fichier d'inventaire à ce stade.

Maintenant, ajoutez la ligne marquée dans votre fichier d'inventaire. Ces lignes ajoutent les faits/variables globaux fact_scope et Port.

Ensuite, ajoutez les lignes marquées dans votre fichier d'inventaire. Ces lignes ajoutent le fact_scope et Port faits/variables pour les hôtes dans le base de données grouper.

Enfin, ajoutez le fact_scope et Port faits/variables de l'hôte pour le vm3.nœudkite.com et vm4.nœudkite.com hôtes, comme indiqué dans la capture d'écran ci-dessous.

Une fois que vous avez terminé, appuyez sur + X suivie par Oui et pour enregistrer le fichier d'inventaire.

Pour imprimer la valeur des faits/variables globaux, de groupe et d'hôte, créez un nouveau playbook fact_precendence.yaml dans le cahiers/ répertoire comme suit :

$ nano playbooks/fact_precedence.yaml

Tapez les lignes suivantes dans le fact_precedence.yaml déposer.

- hôtes : tous
utilisateur : ansible
Tâches:
- nom : imprimer tous les faits
déboguer:
msg : « Portée des faits : fact_scope    Port : port »

Une fois que vous avez terminé, appuyez sur + X suivie par Oui et pour sauver le fact_precedence.yaml déposer.

Pour imprimer les faits/variables globaux, de groupe et d'hôte, exécutez la commande fact_precedence.yaml livre de jeu comme suit :

$ ansible-playbook playbooks/fact_precedence.yaml

Comme vous pouvez le voir, les faits/variables globaux, de groupe et d'hôte sont imprimés.

Notez que les faits/variables de groupe ont remplacé les faits/variables globaux (1). Notez également que les faits/variables hôtes ont remplacé à la fois les faits/variables de groupe et globaux (2).

La priorité des faits/variables d'Ansible est la suivante :

Fait d'hôte > Fait de groupe > Fait global

Conclusion:

Après avoir lu cet article, vous devriez être en mesure de travailler confortablement avec les faits/variables globaux, de groupe et d'hôte d'Ansible. Rappelez-vous la priorité des faits personnalisés Ansible. Cela vous aidera à déboguer plus facilement vos playbooks Ansible.

Meilleurs émulateurs de console de jeu pour Linux
Cet article répertorie les logiciels d'émulation de console de jeu populaires disponibles pour Linux. L'émulation est une couche de compatibilité logi...
Meilleures distributions Linux pour les jeux en 2021
Le système d'exploitation Linux a parcouru un long chemin depuis son apparence originale, simple et basée sur le serveur. Ce système d'exploitation s'...
Comment capturer et diffuser votre session de jeu sur Linux
Dans le passé, jouer à des jeux n'était considéré qu'un passe-temps, mais avec le temps, l'industrie du jeu a connu une croissance énorme en termes de...