


So lösen Sie das Problem der langsamen Ausführungsgeschwindigkeit von Ansible
Ich habe vom Projekt Feedback erhalten, dass der Kunde bei der Bereitstellung des Produkts mit den von uns bereitgestellten Tools auf Schwierigkeiten gestoßen ist und beim Host-Hinzufügen auf Probleme gestoßen ist, die das Implementierungsteam daran gehindert haben, die Arbeit weiter voranzutreiben, und haben uns daher um Hilfe gebeten.
Umweltinformationen: kylin10
Architektur: Arm
Erste Anzeichen
Während des Systembereitstellungsprozesses haben wir Ansible-Skripte für Batch-Vorgänge auf Hosts verwendet. Kürzlich bin ich auf ein Problem gestoßen, bei dem der Ausführungsprozess hängengeblieben ist. Zunächst wurde vermutet, dass Ansible während der Ausführung blockiert wurde. Um dies zu überprüfen, habe ich einen Befehl zum Testen an das Feld gesendet.
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
Natürlich hat es mehr als 2 Minuten gedauert, einen einfachen Ansible-Befehl in der Umgebung auszuführen, bevor das Ergebnis zurückgegeben wurde. Die Ursache des Problems liegt hier und wir haben eine allgemeine Richtung.
Ansible ist während der tatsächlichen Ausführung immer noch auf eine SSH-Remote-Verbindung angewiesen. Es wird zunächst spekuliert, dass die Ausführungsrückgabegeschwindigkeit aufgrund der langsamen SSH-Verbindungsgeschwindigkeit langsam sein könnte.
Überprüfen Sie die SSH-Parameter und die /etc/ssh/sshd_config-Konfiguration
GSSAPIAuthentication no #关闭SERVER上的GSS认证
Unter Linux ist die umgekehrte DNS-Auflösung von SSH standardmäßig aktiviert. Dies nimmt viel Zeit in Anspruch und muss daher deaktiviert werden. In der Konfigurationsdatei ist UseDNS zwar mit „Ja“ kommentiert, der Standardschalter ist jedoch „Ja“
UseDNS=no #关闭SERVER上DNS反向解析
Es stellt sich heraus, dass die beiden SSH-Parameterkonfigurationen im Projekt mit den oben genannten übereinstimmen und der manuelle Test der SSH-Anmeldung beim Peer-Host sehr schnell ist
Problemanalyse
Ich habe keine Ahnung, daher kann ich nur den Linux-Befehl strace verwenden, um Systemaufrufe zu verfolgen
Beim Blick auf das Strace-Protokoll haben wir festgestellt, dass es eine große Anzahl ausgewählter Wartezeiten gibt, die bei der Ausführung eines bestimmten Vorgangs für eine lange Zeit blockiert werden sollten.
Debuggen mit Ansible
ansible all -i "192.168.2.84, -m shell -a 'date' --l become --become-method=sudo --become-user=root -u test -vvv
Fügen Sie -vvv nach dem Befehl hinzu, um den detaillierten Ausführungsprozess anzuzeigen
Lösen Sie das Problem
Aus den Debug-Informationen können wir den Fehler „mux_client_read_packet: Header lesen fehlgeschlagen: Broken Pipe“ erkennen. An der Stelle, an der das Skript ausgeführt wird, können wir sehen, dass Ansible mit Python zusammenhängt Ausführung?
Ich habe die Informationen online überprüft und festgestellt, dass es Kompatibilitätsprobleme zwischen Ansible und Python gibt.
Ich habe also die Python-Version überprüft. Ich kann sehen, dass die Standardversion von Python Python2 ist, aber es gibt auch Python3 auf dem System. Versuchen Sie, den Softlink zur Überprüfung auf Python3.7 zu ändern
Das obige ist der detaillierte Inhalt vonSo lösen Sie das Problem der langsamen Ausführungsgeschwindigkeit von Ansible. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Das Funktionsprinzip von Ansible kann aus der obigen Abbildung verstanden werden: Die Verwaltungsseite unterstützt drei Methoden: Lokal, SSH und Zeromq, um eine Verbindung zur verwalteten Seite herzustellen. Dieser Teil entspricht der Verbindung Im obigen Architekturdiagramm können Sie den Anwendungstyp HostInventory (Hostliste) verwenden, um entsprechende Vorgänge über verschiedene Module zu implementieren und einen einzelnen Befehl auszuführen -hoc; Der Verwaltungsknoten kann eine Reihe von Aufgaben über Playbooks implementieren, z. B. die Installation und Bereitstellung von Webdiensten, die Stapelsicherung von Datenbankservern usw. Wir können Playbooks einfach so verstehen, wie das System vergeht

Nachdem der Kunde Feedback vom Projekt erhalten hatte, stieß er auf Schwierigkeiten bei der Bereitstellung des Produkts mithilfe der von uns bereitgestellten Tools und stieß beim Schritt des Host-Hinzufügens auf Probleme, die das Implementierungsteam daran hinderten, die Arbeit weiter voranzutreiben. Daher bat er uns um Hilfe. Umgebungsinformationen: kylin10-Architektur: Arm hat begonnen, Gestalt anzunehmen. Während des Systembereitstellungsprozesses haben wir für den Stapelbetrieb von Hosts während der Entwicklung Ansible-Skripte verwendet. Kürzlich bin ich auf das Problem gestoßen, dass der Ausführungsprozess hängen bleibt. Es wird zunächst vermutet, dass Ansible während der Ausführung blockiert ist. Um dies zu überprüfen, habe ich einen Befehl zum Testen an das Feld gesendet. localhost$date2024-02-19 Sonntag 17:30:41CSTlocalhost$ansibleall-i

Offizielle Dokumentation: https://docs.ansible.com/ansible/latest/command_guide/intro_adhoc.html Einführung Ein Ad-hoc-Befehl ist ein Befehl, der vorübergehend eingegeben und ausgeführt wird und normalerweise zum Testen und Debuggen verwendet wird. Sie müssen nicht dauerhaft gespeichert werden. Einfach ausgedrückt ist Ad-hoc ein „Sofortbefehl“. Häufig verwendete Module 1. Befehlsmodul (Standardmodul) Das Standardmodul ist nicht so leistungsfähig wie die Shell. Grundsätzlich kann das Shell-Modul die Funktionen des Befehlsmoduls unterstützen. 【1】Help ansible-doccommand# Es wird empfohlen, das folgende ansible-doccomm zu verwenden

Ansible ist ein automatisiertes Open-Source-Konfigurationsmanagement- und Bereitstellungstool, das Administratoren dabei hilft, Aufgaben auf mehreren Servern zu automatisieren. In Ansible sind Playbooks YAML-Dateien, die zur Beschreibung von Automatisierungsaufgaben verwendet werden. Die Verwendung von Variablen ist ein wichtiger Teil der Playbook-Funktionalität, der Ihr Playbook flexibler, wiederverwendbar und einfacher zu warten machen kann. Im Folgenden sind einige grundlegende Verwendungsmöglichkeiten von Variablen in Ansible Playbook aufgeführt: Variablen definieren: Sie können Variablen im Playbook, in der Inventardatei, in der Vars-Datei oder in der Befehlszeile mithilfe des Parameters -e definieren. Beispiel: Variablen im Playbook definieren: ----na

Als leistungsstarkes Betriebssystem werden die Fernverwaltungstools von Linux häufig für die Serververwaltung, Netzwerküberwachung usw. verwendet. Bei unserer täglichen Arbeit müssen wir häufig spezielle Tools verwenden, um Linux-Server aus der Ferne zu verwalten. In diesem Artikel werden fünf praktische Linux-Remoteverwaltungstools vorgestellt und spezifische Codebeispiele bereitgestellt, um deren Verwendung zu demonstrieren. 1.SSHSSH (SecureShell) ist ein verschlüsseltes Netzwerkprotokoll, das zum sicheren Anmelden und Ausführen von Befehlen aus der Ferne verwendet wird. Über SSH können Benutzer

Linux-Remoteverwaltungstools, die Sie nicht kennen: Fünf empfohlene Empfehlungen Im Bereich der modernen Informationstechnologie ist das Linux-Betriebssystem für viele Unternehmen und Privatpersonen zu einem der bevorzugten Betriebssysteme geworden. Für Linux-Systemadministratoren sind Remote-Verwaltungstools sehr wichtig, die ihnen helfen, Remote-Server schnell und effizient zu überwachen und zu verwalten. In diesem Artikel werden fünf Linux-Remoteverwaltungstools vorgestellt, die Sie möglicherweise nicht kennen, und ich hoffe, dass er Ihnen bei der Linux-Remoteverwaltung hilfreich sein wird. tmu

Java dockt an die automatische Betriebs- und Wartungsplattform ansible an, um die Dateisammlung und -verteilung zu realisieren. Dieses Andocken hat hauptsächlich die folgenden zwei Funktionen: Dateisammlung (Batch-Vorgänge für Dateien, einschließlich Batch-Sammlung allgemeiner Dateien wie Protokolldateien von mehreren Hosts) Dateiverteilung (Batch-Vorgänge für Dateien) Führen Sie Batch-Vorgänge durch, einschließlich der Batch-Verteilung gemeinsamer Dateien (z. B. Protokolldateien) von mehreren Hosts.) Szenariobeschreibung und Ansibleyum-Installation Da Ansible kein Windows-Installationspaket hat, wird zur Erleichterung des Testens ein Linux benötigt Es wurde eine Umgebung für nachfolgende Arbeiten geschaffen. Dieses Mal wird die yum-Methode zur Installation verwendet. Nachdem Sie Ansible mit der yum-Methode installiert haben, installieren Sie zunächst die EPEL-Quelle. yuminstall-yhttp://dl.fedor

So konfigurieren Sie automatisierte Bereitstellungstools (z. B. Ansible) unter Linux. Einführung: Im Prozess der Softwareentwicklung sowie des Betriebs und der Wartung stoßen wir häufig auf Situationen, in denen Anwendungen auf mehreren Servern bereitgestellt werden müssen. Die manuelle Bereitstellung ist zweifellos ineffizient und fehleranfällig, daher ist die Konfiguration eines automatisierten Bereitstellungstools unerlässlich. In diesem Artikel erfahren Sie, wie Sie Ansible, ein häufig verwendetes automatisiertes Bereitstellungstool, unter Linux konfigurieren, um eine schnelle und zuverlässige Anwendungsbereitstellung zu erreichen. 1. Installieren Sie Ansible. Öffnen Sie das Terminal und verwenden Sie den folgenden Befehl.
