Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Verwenden von Ansible zum Übertragen von Dateien zu oder von Junos-Geräten

Verwenden Sie die Ansible-Module von Juniper Networks, um Dateien zwischen dem Ansible-Steuerknoten und Junos-Geräten zu kopieren.

Übersicht über file_copy Module

Sie können das juniper.device.file_copy Ansible-Modul verwenden, um Dateien zwischen dem Ansible-Steuerungsknoten und Junos-Geräten zu übertragen. In Tabelle 1 sind die Modulargumente aufgeführt. Sie müssen das action Argument angeben, um die Übertragungsrichtung anzugeben. Sie müssen auch das lokale und das Remote-Verzeichnis sowie den Dateinamen der zu übertragenden Datei angeben.

Tabelle 1: file_copy Argumente

Modul-Argument

Beschreibung

Vorgabe

action

Geben Sie an, ob eine Datei auf das oder vom Remote-Gerät kopiert werden soll. Unterstützte Werte:

  • get

  • put

file

Dateiname der zu kopierenden Datei.

local_dir

Verzeichnis auf dem lokalen Ansible-Steuerknoten.

remote_dir

Verzeichnis auf dem Remote-Gerät.

Das file_copy Modul meldet eine erfolgreiche Übertragung, wenn das Modul die Datei in das Zielverzeichnis kopiert und die Prüfsumme der kopierten Datei mit der Prüfsumme der Originaldatei übereinstimmt. In einigen Fällen ist die Übertragung erfolgreich, aber das Modul meldet, dass die Aufgabe fehlgeschlagen ist, weil die Prüfsummen nicht übereinstimmen. Dies kann passieren, wenn die Datei während der Übertragung beschädigt wird. Es kann auch passieren, wenn Sie eine große Protokolldatei übertragen, die häufig aktualisiert wird. Wenn die Datei in diesem Fall während der Übertragung aktualisiert wird, kann die übertragene Datei geringfügig von der Originaldatei abweichen, was zu einer Abweichung der Prüfsumme führt.

Dateien vom Remote-Gerät übertragen

Sie können das juniper.device.file_copy Modul verwenden, um eine Datei von einem Junos-Gerät auf den Ansible-Steuerungsknoten zu kopieren. Sie können z. B. die Konfigurationsdatei oder eine Protokolldatei regelmäßig auf einem Gerät archivieren. Um eine Datei vom Remote-Gerät zu übertragen, geben Sie action: getan.

Im folgenden Playbook wird die Meldungsprotokolldatei von jedem Gerät in der Bestandslistengruppe in ein hostspezifisches Verzeichnis auf dem Ansible-Steuerungsknoten übertragen.

Wenn Sie das Playbook ausführen, wird für jeden Host in der Bestandslistengruppe ein logs/hostname -verzeichnis erstellt. Das Playbook kopiert dann die Meldungsprotokolldatei von jedem Remotehost in das jeweilige Zielverzeichnis für diesen Host. Obwohl die Kopieraufgabe für alle Hosts fehlgeschlagen zu sein scheint, ist die Dateiübertragung tatsächlich erfolgreich. Das Junos-Gerät aktualisiert ständig die Protokolldatei für Meldungen . In diesem Fall aktualisiert das Junos-Gerät die Protokolldatei während der Übertragung. Dies hat zur Folge, dass der Prüfsummenvergleich zwischen der lokalen Datei und der Remote-Datei fehlschlägt, da sich die ursprüngliche und die kopierte Datei geringfügig unterscheiden.

Wenn Sie das Protokollverzeichnis überprüfen, wird das Meldungsprotokoll für jeden Host archiviert.

Dateien auf das Remote-Gerät übertragen

Sie können das juniper.device.file_copy Modul verwenden, um eine Datei vom Ansible-Steuerungsknoten auf ein Junos-Gerät zu kopieren. Um die Datei auf das Remote-Gerät zu übertragen, geben Sie action: putan.

Im folgenden Playbook wird das Skript bgp.slax vom Ansible-Steuerungsknoten auf jeden Host in der angegebenen Bestandslistengruppe kopiert. Das Skript wird aus dem Verzeichnis scripts innerhalb des Playbook-Verzeichnisses in das Verzeichnis /var/db/scripts/op auf dem Junos-Gerät kopiert.