[Ansible] Je souhaite appeler ma propre fonction à partir du module de modèle (macro)

introduction

ansible 2.9.1

Si vous utilisez le module de modèle, vous souhaiterez peut-être créer votre propre fonction et l'appeler. jinja2 a une fonction appelée macro, qui appelle un fichier dans lequel une fonction unique est écrite à partir d'un autre fichier j2. Il semble qu'il puisse être utilisé, mais je vais en fait l'essayer s'il peut également être utilisé avec le module de modèle.

Fichier de référence

(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 à partir duquel la macro est appelée
        dest: result.txt

___ (2) fichier j2 (base.j2: fichier de l'appelant) ___ Ligne 1: chargez la macro dans macro.j2, qui se trouve dans le même répertoire que ce fichier j2 2ème ligne: Passez la variable à une fonction unique appelée test1 dans macro.j2 Ligne 3: Passez la variable à une fonction unique appelée test2 dans macro.j2

base.j2


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

___ (3) fichier j2 (macro.j2: fichier dans lequel la fonction d'origine est écrite) ___ Commencez à écrire la fonction comme "nom de la fonction macro (variable 1, variable 2, ...)" Enfin, fermons-le avec "end macro"

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 %}

Résultat d'exécution

J'ai pu l'exécuter comme prévu. Découpons une description similaire dans un fichier macro et créons un modèle intelligent.

result.txt


My name is Taro
I live in Tokyo

My name is Hanako
I like tennis

Article associé

[Automatisation Ansible x NW] Je souhaite créer des paramètres de périphérique NW avec le module de modèle

Recommended Posts

[Ansible] Je souhaite appeler ma propre fonction à partir du module de modèle (macro)
Je veux faire des crises de ma tête
Je souhaite utiliser la fonction d'activation Mish
Appelez votre propre module python à partir du package ROS
[Ansible] Comment appeler des variables lors de la création de votre propre module
Je souhaite calculer le temps d'arrêt autorisé à partir du taux de fonctionnement
Je veux obtenir le nom de la fonction / méthode en cours d'exécution
Je veux vérifier la position de mon visage avec OpenCV!
Je veux épingler Spyder à la barre des tâches
Je veux sortir froidement sur la console
Je veux gérer la rime part1
Je souhaite envoyer un signal uniquement du sous-thread au thread principal
Je veux gérer la rime part3
Je veux utiliser jar de python
J'ai essayé d'améliorer la précision de mon propre réseau neuronal
Je souhaite utiliser Django Debug Toolbar dans les applications Ajax
Je veux exprimer mes sentiments avec les paroles de Mr. Children
Je veux afficher la barre de progression
Python: je souhaite mesurer proprement le temps de traitement d'une fonction
Je veux gérer la rime part2
Je veux gérer la rime part5
Je veux gérer la rime part4
[LINE Messaging API] Je souhaite envoyer un message du programme à tout le monde LINE
Je souhaite voir une liste de fichiers WebDAV dans le module Requêtes
[Python] J'ai essayé d'obtenir le nom du type sous forme de chaîne de caractères à partir de la fonction type
Je veux obtenir le nom du fichier, le numéro de ligne et le nom de la fonction dans Python 3.4
Je souhaite me connecter à PostgreSQL à partir de plusieurs langues
Je veux pouvoir penser à la récurrence
Je souhaite envoyer un e-mail depuis Gmail en utilisant Python.
[Python] Je veux gérer 7DaysToDie depuis Discord! 1/3
Je veux gérer la rime part7 (BOW)
[J'ai essayé d'utiliser Pythonista 3] Importation de mon propre module
Je veux utiliser le solveur ceres de python
[Python] Je veux gérer 7DaysToDie depuis Discord! 2/3
Je veux créer du code C ++ à partir de code Python!
Je souhaite personnaliser l'apparence de zabbix
Je veux afficher la progression en Python!
[Python] J'ai créé un système pour introduire "la recette que je veux vraiment" depuis le site de recettes!
Je veux remplacer les variables dans le fichier de modèle python et le produire en masse dans un autre fichier
J'ai essayé d'entraîner la fonction péché avec chainer
Je veux détecter des images de chats d'Instagram
Comment exécuter le module Ansible ajouté dans Ansible Tower
J'ai essayé de détecter l'iris à partir de l'image de la caméra
Je veux grep le résultat de l'exécution de strace
Je veux faire défiler la table de décalage Django, mais ...
Je voulais utiliser la bibliothèque Python de MATLAB
Je veux hériter de l'arrière avec la classe de données python
Je veux bien comprendre les bases de Bokeh
J'ai essayé d'approcher la fonction sin en utilisant le chainer
Je veux écrire en Python! (3) Utiliser des simulacres
Je veux gérer la rime part6 (organiser une fois)
Je veux automatiser ssh en utilisant la commande expect!
Je souhaite publier le produit au moindre coût
[Note] Le module installé ne peut pas être appelé dans jupyter.
J'ai lu la référence Chainer (mise à jour de temps en temps)
[Python] Comment appeler une fonction de c depuis python (édition ctypes)
Je veux utiliser le jeu de données R avec python