[PYTHON] [Ansible] Ich möchte meine eigene Funktion über das Vorlagenmodul (Makro) aufrufen.

Einführung

ansible 2.9.1

Wenn Sie das Vorlagenmodul verwenden, möchten Sie möglicherweise eine eigene Funktion erstellen und aufrufen. jinja2 hat eine Funktion namens Makro, die eine Datei aufruft, in der eine eindeutige Funktion aus einer anderen j2-Datei geschrieben wird. Es scheint, dass es verwendet werden kann, aber ich werde es tatsächlich versuchen, wenn es auch mit dem Vorlagenmodul verwendet werden kann.

Referenzdatei

(1)Playbook

template_sample.j2


---
- name: template TEST
  hosts: localhost
  gather_facts: no
  vars:
    ansible_python_interpreter: /usr/bin/python3
  tasks:
    - name: 'template'
      template:
        src: base.j2        #Playbook, von dem aus das Makro aufgerufen wird
        dest: result.txt

___ (2) j2-Datei (base.j2: Aufruferdatei) ___ Zeile 1: Laden Sie das Makro in macro.j2, das sich im selben Verzeichnis wie diese j2-Datei befindet 2. Zeile: Übergeben Sie die Variable an eine eindeutige Funktion namens test1 in macro.j2 Zeile 3: Übergeben Sie die Variable an eine eindeutige Funktion namens test2 in macro.j2

base.j2


{% import "macro.j2" as macro %}
{{ macro.test1("Taro", "Tokyo") }}
{{ macro.test2("Hanako", "tennis") }}

___ (3) j2-Datei (macro.j2: Datei, in die die ursprüngliche Funktion geschrieben wurde) ___ Schreiben Sie die Funktion als "Makrofunktionsname (Variable 1, Variable 2, ...)". Zum Schluss schließen wir es mit "Makro beenden"

macro.j2


{% macro test1(var1, var2)%}
My name is {{ var1 }}
I live in {{ var2 }}
{% endmacro %}

{% macro test2(var1, var2)%}
My name is {{ var1 }}
I like {{ var2 }}
{% endmacro %}

Ausführungsergebnis

Ich konnte es wie erwartet ausführen. Schneiden wir eine ähnliche Beschreibung in eine Makrodatei aus und erstellen eine intelligente Vorlage.

result.txt


My name is Taro
I live in Tokyo

My name is Hanako
I like tennis

In Verbindung stehender Artikel

[Ansible x NW-Automatisierung] Ich möchte NW-Geräteeinstellungen mit dem Vorlagenmodul erstellen

Recommended Posts

[Ansible] Ich möchte meine eigene Funktion über das Vorlagenmodul (Makro) aufrufen.
Ich möchte Passungen aus meinem Kopf machen
Ich möchte die Aktivierungsfunktion Mish verwenden
Rufen Sie Ihr eigenes Python-Modul aus dem ROS-Paket auf
[Ansible] So rufen Sie Variablen auf, wenn Sie ein eigenes Modul erstellen
Ich möchte die zulässige Ausfallzeit aus der Betriebsrate berechnen
Ich möchte den Namen der ausgeführten Funktion / Methode erhalten
Ich möchte die Position meines Gesichts mit OpenCV überprüfen!
Ich möchte Spyder an die Taskleiste anheften
Ich möchte kühl auf die Konsole ausgeben
Ich möchte mit dem Reim Teil1 umgehen
Ich möchte nur ein Signal vom Sub-Thread zum Haupt-Thread senden
Ich möchte mit dem Reim part3 umgehen
Ich möchte ein Glas aus Python verwenden
Ich habe versucht, die Genauigkeit meines eigenen neuronalen Netzwerks zu verbessern
Ich möchte die Django Debug Toolbar in Ajax-Anwendungen verwenden
Ich möchte meine Gefühle mit den Texten von Mr. Children ausdrücken
Ich möchte den Fortschrittsbalken anzeigen
Python: Ich möchte die Verarbeitungszeit einer Funktion genau messen
Ich möchte mit dem Reim part2 umgehen
Ich möchte mit dem Reim part5 umgehen
Ich möchte mit dem Reim part4 umgehen
[LINE Messaging API] Ich möchte eine Nachricht vom Programm an alle LINE senden
Ich möchte eine Liste der WebDAV-Dateien im Modul Anfragen anzeigen
[Python] Ich habe versucht, den Typnamen als Zeichenfolge aus der Typfunktion abzurufen
Ich möchte den Dateinamen, die Zeilennummer und den Funktionsnamen in Python 3.4 erhalten
Ich möchte aus verschiedenen Sprachen eine Verbindung zu PostgreSQL herstellen
Ich möchte an eine Wiederholung denken können
Ich möchte mit Python eine E-Mail von Google Mail senden.
[Python] Ich möchte 7DaysToDie von Discord aus verwalten! 1/3
Ich möchte mit dem Reim part7 (BOW) umgehen
[Ich habe versucht, Pythonista 3 zu verwenden] Importieren meines eigenen Moduls
Ich möchte Ceres Solver aus Python verwenden
[Python] Ich möchte 7DaysToDie von Discord aus verwalten! 2/3
Ich möchte C ++ - Code aus Python-Code erstellen!
Ich möchte das Erscheinungsbild von zabbix anpassen
Ich möchte den Fortschritt in Python anzeigen!
[Python] Ich habe ein System erstellt, um "das Rezept, das ich wirklich will" von der Rezeptseite einzuführen!
Ich möchte die Variablen in der Python-Vorlagendatei ersetzen und in einer anderen Datei in Massenproduktion herstellen
Ich habe versucht, die Sündenfunktion mit Chainer zu trainieren
Ich möchte Bilder von Katzen von Instagram erkennen
Ausführen des in Ansible Tower hinzugefügten Ansible-Moduls
Ich habe versucht, Iris aus dem Kamerabild zu erkennen
Ich möchte das Ausführungsergebnis von strace erfassen
Ich möchte in der Django-Verschiebungstabelle scrollen, aber ...
Ich wollte die Python-Bibliothek von MATLAB verwenden
Ich möchte mit Python-Datenklasse nach hinten erben
Ich möchte die Grundlagen von Bokeh vollständig verstehen
Ich habe versucht, die Sündenfunktion mit Chainer zu approximieren
Ich möchte in Python schreiben! (3) Verwenden Sie Mock
Ich möchte mit dem Reim part6 umgehen (einmal organisieren)
Ich möchte ssh mit dem Befehl expected automatisieren!
Ich möchte das Produkt zu den niedrigsten Kosten veröffentlichen
[Hinweis] Das installierte Modul kann nicht im Jupiter aufgerufen werden.
Ich habe die Chainer-Referenz gelesen (von Zeit zu Zeit aktualisiert).
[Python] So rufen Sie eine Funktion von c aus Python auf (ctypes edition)
Ich möchte R-Datensatz mit Python verwenden