


Comment résoudre le problème de la vitesse d'exécution lente d'ansible
Nous avons reçu des commentaires du projet selon lesquels le client a rencontré des difficultés lors du déploiement du produit à l'aide des outils que nous avons fournis et a rencontré des problèmes lors de l'étape d'ajout d'hôte, ce qui a empêché l'équipe de mise en œuvre de continuer à faire avancer le travail, ils nous ont donc demandé de l'aide.
Information environnementale : kylin10
Architecture : bras
Premiers signes
Pendant le processus de déploiement du système, nous avons utilisé des scripts Ansible pour les opérations par lots sur les hôtes. Récemment, j'ai rencontré le problème du processus d'exécution bloqué. On soupçonne initialement qu'ansible est bloqué pendant l'exécution. Pour vérifier cela, j'ai envoyé une commande sur le terrain pour tester.
localhost$ date 2024年02月19日星期 17:30:41 CST localhost$ ansible all -i "192.168.2.84, -m shell -a 'date' --l become --become-method=sudo --become-user=root -u test 192.168.2.84 CHANGED rc=0 >> 2024年02月19日星期 17:33:34 CST
Effectivement, il a fallu plus de 2 minutes pour exécuter une simple commande ansible sur l'environnement avant de renvoyer le résultat. La cause du problème réside ici, et nous avons une direction générale.
Ansible s'appuie toujours sur la connexion à distance SSH lors de l'exécution réelle. Auparavant, nous avons rencontré une vitesse de connexion SSH lente. Il est initialement supposé que la vitesse de retour d'exécution peut être lente en raison de la vitesse de connexion SSH lente.
Vérifiez les paramètres ssh et vérifiez la configuration /etc/ssh/sshd_config
GSSAPIAuthentication no #关闭SERVER上的GSS认证
Sous Linux, la résolution DNS inversée de SSH est activée par défaut. Cela prend beaucoup de temps, elle doit donc être désactivée. Dans le fichier de configuration, bien que UseDNS yes soit commenté, le commutateur par défaut est yes
UseDNS=no #关闭SERVER上DNS反向解析
Il s'avère que les deux configurations de paramètres ssh sur le projet sont cohérentes avec ce qui précède, et le test manuel de la connexion ssh à l'hôte homologue est très rapide
Analyse des problèmes
Je n'en ai aucune idée, je ne peux donc utiliser que la commande Linux strace pour tracer les appels système
En regardant le journal des straces, nous avons constaté qu'il existe un grand nombre d'attentes de sélection, qui devraient être bloquées pendant une longue période lors de l'exécution d'une certaine opération.
Débogage avec ansible
ansible all -i "192.168.2.84, -m shell -a 'date' --l become --become-method=sudo --become-user=root -u test -vvv
Ajoutez -vvv après la commande pour voir le processus d'exécution détaillé
Résoudre le problème
À partir des informations de débogage, vous pouvez voir l'erreur « mux_client_read_packet : read header failed : Broken pipe ». Lors de l'exécution du script, vous pouvez voir que les commandes liées à Python sont en cours d'exécution. ?
J'ai vérifié les informations en ligne et constaté qu'il existe des problèmes de compatibilité entre ansible et python.
Vérifiez donc la version de python, vous pouvez voir que la version par défaut de python est python2, mais il y a aussi python3 sur le système, essayez de modifier le lien logiciel vers python3.7 pour vérifier
Exécutez à nouveau la commande ansible
Le temps d'exécution est de 1,3s. Il semble que la compatibilité des versions ansible et python soit à l'origine de ce problème.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Le principe de fonctionnement d'Ansible peut être compris à partir de la figure ci-dessus : l'extrémité de gestion prend en charge trois méthodes locales, ssh et zeromq pour se connecter à l'extrémité gérée. La valeur par défaut est d'utiliser une connexion basée sur ssh. Cette partie correspond au module de connexion. dans le diagramme d'architecture ci-dessus ; il peut être connecté par type d'application. La classification HostInventory (liste d'hôtes) est effectuée d'autres manières. Le nœud de gestion implémente les opérations correspondantes via divers modules. Un seul module et l'exécution par lots d'une seule commande peuvent être appelés. -hoc ; le nœud de gestion peut implémenter un ensemble de tâches multiples via des playbooks. Implémenter un type de fonctions, telles que l'installation et le déploiement de services Web, la sauvegarde par lots de serveurs de base de données, etc. Nous pouvons simplement comprendre les playbooks au fur et à mesure que le système passe

Documentation officielle : https://docs.ansible.com/ansible/latest/command_guide/intro_adhoc.html Introduction La commande ad-hoc est une commande temporairement saisie et exécutée, généralement utilisée pour les tests et le débogage. Ils n'ont pas besoin d'être enregistrés de manière permanente. En termes simples, l'ad hoc est une "commande instantanée". Modules couramment utilisés 1. module de commande (module par défaut) Le module par défaut n'est pas aussi puissant que le shell. Fondamentalement, le module shell peut prendre en charge les fonctions du module de commande. 【1】Aide ansible-doccommand# Il est recommandé d'utiliser le ansible-doccomm suivant

Après avoir reçu des commentaires sur le projet, le client a rencontré des difficultés lors du déploiement du produit à l'aide des outils que nous avons fournis, ainsi que des problèmes lors de l'étape d'ajout d'hôte, ce qui a empêché l'équipe de mise en œuvre de continuer à faire avancer le travail. Il nous a donc demandé de l'aide. Informations sur l'environnement : architecture kylin10 : arm a commencé à prendre forme. Pendant le processus de déploiement du système, pour les opérations par lots des hôtes, nous avons utilisé des scripts ansible pendant le développement. Récemment, j'ai rencontré un problème avec le processus d'exécution bloqué. On soupçonnait initialement qu'ansible était bloqué pendant l'exécution. Pour vérifier cela, j'ai envoyé une commande sur le terrain pour tester. localhost$date2024-02-19 dimanche 17:30:41CSTlocalhost$ansibleall-i

Ansible est un outil open source de gestion et de déploiement de configuration automatisé qui aide les administrateurs à automatiser les tâches sur plusieurs serveurs. Dans Ansible, les playbooks sont des fichiers YAML utilisés pour décrire les tâches d'automatisation. L'utilisation de variables est une partie importante de la fonctionnalité Playbook, qui peut rendre votre Playbook plus flexible, réutilisable et plus facile à maintenir. Voici quelques utilisations de base des variables dans Ansible Playbook : Définir des variables : vous pouvez définir des variables dans le playbook, le fichier d'inventaire, le fichier vars ou sur la ligne de commande à l'aide du paramètre -e. Exemple : Définir des variables dans Playbook : ----na

En tant que système d'exploitation puissant, les outils de gestion à distance de Linux sont largement utilisés dans la gestion des serveurs, la surveillance des réseaux, etc. Dans notre travail quotidien, nous devons souvent utiliser des outils spécialisés pour gérer à distance les serveurs Linux. Cet article présentera cinq outils pratiques de gestion à distance Linux et fournira des exemples de code spécifiques pour démontrer leur utilisation. 1.SSHSSH (SecureShell) est un protocole réseau crypté utilisé pour se connecter en toute sécurité et exécuter des commandes à distance. Via SSH, les utilisateurs peuvent

Outils de gestion à distance Linux que vous ne connaissez pas : cinq recommandations recommandées Dans le domaine des technologies de l'information modernes, le système d'exploitation Linux est devenu l'un des systèmes d'exploitation préférés de nombreuses entreprises et particuliers. Pour les administrateurs système Linux, les outils de gestion à distance sont très importants, car ils les aident à surveiller et à gérer les serveurs distants rapidement et efficacement. Cet article présentera cinq outils de gestion à distance Linux que vous ne connaissez peut-être pas et fournira des exemples de code spécifiques. J'espère qu'il vous sera utile dans la gestion à distance Linux. tmu

Java se connecte à la plate-forme d'exploitation et de maintenance automatique ansible pour réaliser la collecte et la distribution de fichiers. Cette station d'accueil a principalement les deux fonctions suivantes : la collecte de fichiers (opérations par lots sur les fichiers, y compris la collecte par lots de fichiers communs tels que les fichiers journaux de plusieurs hôtes) la distribution de fichiers. (opérations par lots sur les fichiers) Effectuer des opérations par lots, y compris la distribution par lots de fichiers communs (tels que des fichiers journaux) à partir de plusieurs hôtes) Description du scénario et installation d'ansibleyum Étant donné qu'ansible n'a pas de package d'installation Windows, afin de faciliter les tests, un Linux. L'environnement a été construit pour les travaux ultérieurs. Cette fois, la méthode yum est utilisée pour l'installation. Après avoir utilisé la méthode yum pour installer Ansible, installez d'abord la source EPEL. yuminstall-yhttp://dl.fedor

Comment configurer des outils de déploiement automatisés (tels qu'Ansible) sous Linux Introduction : Dans le processus de développement, d'exploitation et de maintenance de logiciels, nous rencontrons souvent des situations où les applications doivent être déployées sur plusieurs serveurs. Le déploiement manuel est sans aucun doute inefficace et sujet aux erreurs, il est donc essentiel de configurer un outil de déploiement automatisé. Cet article explique comment configurer Ansible, un outil de déploiement automatisé couramment utilisé, sur Linux pour réaliser un déploiement d'applications rapide et fiable. 1. Installez Ansible. Ouvrez le terminal et utilisez la commande suivante.
