Ansible Pull

Ansible Pull



Ansible ist eines der leistungsstärksten kostenlosen und Open-Source-Automatisierungstools. Es ist ein vielseitiges Tool, mit dem wir eine Vielzahl von Aufgaben wie Konfigurationsmanagement, Anwendungsbereitstellung und mehr über SSH automatisieren können.

Wenn wir an Ansible denken, denken wir an einen einzelnen Kontrollknoten, der alle anderen definierten Knoten verwaltet und konfiguriert. Ansible bietet jedoch mithilfe des Dienstprogramms ansible-pull eine dezentralere Option. Mit diesem Dienstprogramm können die verwalteten Knoten die Konfigurationen aus einem Versionskontroll-Repository abrufen.

In diesem Beitrag werden wir untersuchen, wie man mit dem Befehl „ansible-pull“ arbeitet, und einige grundlegende Beispiele bereitstellen.







Wann sollte der Ansible Pull verwendet werden?

Bevor wir in den praktischen Teil des Tutorials eintauchen, lassen Sie uns einige häufige Szenarien verstehen, in denen Sie möglicherweise den Ansible-Pull verwenden müssen.



Dynamische Umgebungen – In einer dynamischen Umgebung wie einer Cloud-Infrastruktur, in der Knoten kurzlebig sein können, kann es von Vorteil sein, ihnen die Möglichkeit zu geben, sich beim Hochfahren selbst zu konfigurieren.



Zentrale Fehlerquellen vermeiden – Bei Verwendung eines einzelnen Steuerknotens kann es zu einem Single Point of Failure kommen, bei dem die Steuerknoten aller Konfigurationen verloren gehen und neu erstellt werden müssen.





Edge-Umgebungen – Pull-Konfigurationen könnten effizienter sein, wenn Sie Randstandorte mit eingeschränkter Konnektivität zu zentralen Bereichen haben.

Anforderungen:

Bevor Sie sich mit den Beispielen befassen, stellen Sie sicher, dass Sie über Folgendes verfügen:



  • Ansible auf Ihren Knoten installiert
  • Ein VCS-Repository (wie Git), das Ihre Ansible-Playbooks enthält
  • Geeignete SSH-Schlüssel oder Anmeldeinformationen für den Zugriff auf das Repository

Ansible Pull-Befehl

Das Folgende zeigt die Syntax des Befehls ansible-pull:

ansible-pull [-h] [--version] [-v] [--private-key PRIVATE_KEY_FILE]
[-u REMOTE_USER] [-c VERBINDUNG] [-T TIMEOUT]
[--ssh-common-args SSH_COMMON_ARGS]
[--sftp-extra-args SFTP_EXTRA_ARGS]
[--scp-extra-args SCP_EXTRA_ARGS]
[--ssh-extra-args SSH_EXTRA_ARGS]
[-k | --connection-password-file CONNECTION_PASSWORD_FILE]
[--vault-id VAULT_IDS]
[--ask-vault-password | --vault-password-file VAULT_PASSWORD_FILES]
[-e EXTRA_VARS] [-t TAGS] [--skip-tags SKIP_TAGS]
[-i INVENTORY] [--list-hosts] [-l SUBSET] [-M MODULE_PATH]
[-K | --become-password-file BECOME_PASSWORD_FILE]
[--purge] [-o] [-s SLEEP] [-f] [-d DEST] [-U URL] [--full]
[-C CHECKOUT] [--accept-host-key] [-m MODULE_NAME]
[--verify-commit] [--clean] [--track-subs] [--check]
[--diff]
[playbook.yml ..

Grundlegender Ansible-Pull

Die grundlegendste Verwendung von Ansible-Pull ist das Abrufen und Anwenden eines Playbooks aus einem Repository. Die Befehlssyntax lautet wie folgt:

ansible-pull -U

Zum Beispiel:

ansible-pull -U git://github.com/linuxhint/ansible-repo.git main.yml

Sobald wir den vorherigen Befehl ausführen, führt der Ansible-Pull-Befehl Folgendes aus:

  • Klonen Sie das angegebene Repository
  • Führen Sie das angegebene Playbook (main.yml) aus.

Ansible Pull mit Cron planen

Die häufigste und nützlichste Anwendung der Ansible-Pull-Funktion besteht darin, die Knoten mithilfe von Cron-Jobs regelmäßig auf Aktualisierungen im Repository prüfen zu lassen. Eine Beispieldemonstration sieht wie folgt aus:

0 * * * * /usr/local/bin/ansible-pull -U https://github.com/username/repo.git site.yml > /var/log/ansible-pull.log

Dadurch können wir den Pull-Vorgang des Ziel-Repositorys automatisieren und die Repo-Änderungen abrufen. Wenn es Änderungen gibt, führt Ansible diese durch und stellt sicher, dass die Knoten über die neueste, in den Playbooks definierte Konfiguration verfügen.

Abschluss

Wir haben die Arbeit mit dem Befehl „ansible-pull“ untersucht, um die typischen Ansible-Vorgänge umzukehren, indem wir die Konfigurationen von einem Versionskontrollsystem abrufen, anstatt die Konfiguration von einem zentralen Knoten zu übertragen.