[PYTHON] Comment exécuter le module Ansible ajouté dans Ansible Tower

Qu'est-ce que Ansible Tower?

Un produit Red Hat qui vous permet d'exécuter Ansible avec une interface graphique Web. Ansible Engin s'exécute également dans la partie opération, mais c'était un peu différent d'entrer dans le serveur et d'exécuter Ansible. Notez que ce n'est pas un module standard qui peut être utilisé lorsque Ansible est installé, mais que dois-je faire pour déplacer un module supplémentaire? L'environnement est le suivant.

À propos de l'ajout du module Ansible

Procédure officielle pour savoir comment ajouter un module avec Ansible standard ) Cela se passera bien. Ce à quoi je suis accro cette fois, c'est que lorsque je vais à l'intérieur du serveur et que j'exécute Ansible, cela fonctionne, mais pas depuis Tower. .. Il semblait chauve car d'autres erreurs se sont également produites.

Pièges lors de l'utilisation de Python 3 pour exécuter des playbooks dans Ansible Tower

Cela n'a rien à voir avec l'ajout de modules, mais dans les modules que j'ai ajoutés, le Python utilisé doit être 3 au lieu de 2, "ansible_python_interpreter" /reference_appendices/python_3_support.html) spécifié pour utiliser Python3 qui a également été installé dans RHEL7. J'ai pu l'exécuter normalement avec python3 avec Ansible normal, mais lorsque je l'exécute avec Tower, j'obtiens cette erreur. .. ..

AttributeError: module 'enum' has no attribute 'IntFlag'

En conclusion, l'énumération suivante était mauvaise dans mon environnement, je l'ai donc corrigée en balsant.

 /var/lib/awx/venv/ansible/bin/pip uninstall enum34

Ajout de variables d'environnement pour les modules ajoutés sur la tour

Enfin le sujet principal, mais après avoir corrigé le bogue enum ci-dessus, le suivant est cette erreur.

<module>ImportError: cannot import name 'ModuleName'

Pour la première fois ici, j'ai pensé *** Oh, je ne pouvais pas lire ***, et par conséquent, il y avait un endroit pour ajouter une variable d'environnement aux paramètres d'Ansible Tower et [paramètres "ANSIBLE_LIBRARY"](https: // docs. En enregistrant ansible.com/ansible/latest/dev_guide/developing_locally.html) en tant que JSON, j'ai pu l'exécuter normalement.

{
 "ANSIBLE_LIBRARY": "/usr/share/ansible/plugins/modules/<added module name>",
 "ANSIBLE_MODULE_UTILS": "/usr/share/ansible/plugins/modules/<added module name>/module_utils/"
}

L'emplacement à définir est Paramètres de la tour Ansible> Travaux> Variables d'environnement supplémentaires.

Recommended Posts

Comment exécuter le module Ansible ajouté dans Ansible Tower
Comment utiliser le module optparse
Comment exécuter du code TensorFlow 1.0 en 2.0
Comment utiliser le module ConfigParser
Comment utiliser la bibliothèque C en Python
Comment exécuter CNN en notation système 1 avec Tensorflow 2
Comment obtenir les fichiers dans le dossier [Python]
Comment exécuter LeapMotion avec Python non-Apple
Comment récupérer la nième plus grande valeur en Python
Comment exécuter AutoGluon dans un environnement GPU Google Colab
Comment obtenir le nombre de chiffres en Python
Comment connaître le répertoire actuel en Python dans Blender
Comment exécuter python dans l'espace virtuel (pour MacOS)
Comment utiliser Raspeye Relay Module Python
Comment exécuter des tests avec Python unittest
Comment utiliser la clause exist dans l'ensemble de requêtes Django
Comment exécuter setUp une seule fois dans Python Unittest
Comment résoudre les erreurs de module SSL dans l'environnement Anaconda
Comment utiliser le modèle appris dans Lobe en Python
Comment accéder à la variable globale du module importé
[Python] Comment afficher les valeurs de liste dans l'ordre
Comment utiliser le générateur
Comment exécuter Notepad ++ Python
Comment développer en Python
Comment utiliser le décorateur
Comment augmenter l'axe
Comment démarrer la première projection
Comment écrire une validation personnalisée dans Django REST Framework
Comment trouver le nombre optimal de clusters pour les k-moyennes
[Ansible] Comment appeler des variables lors de la création de votre propre module
[python] Comment vérifier si la clé existe dans le dictionnaire
[TensorFlow 2 / Keras] Comment exécuter l'apprentissage avec CTC Loss dans Keras
Comment tester les attributs ajoutés par add_request_method de pyramid
Comment déboguer une bibliothèque Python standard dans Visual Studio
Comment importer NoteBook en tant que module dans Jupyter (IPython)
Comment utiliser la méthode __call__ dans la classe Python
Comment définir l'attribut de classe html dans le formulaire forms.py de Django
Comment manipuler le DOM dans iframe avec Selenium
Comment se connecter automatiquement comme 1Password depuis CLI
(Note) Comment passer le chemin de votre propre module
Comment générer une requête à l'aide de l'opérateur IN dans Django
Comment exécuter automatiquement la fonction d'exportation de GCP Datastore
Comment obtenir la dernière (dernière) valeur d'une liste en Python
Comment obtenir toutes les clés et valeurs du dictionnaire
Dans Django, comment abréger la longue chaîne de caractères affichée au milieu ...
Remarques sur l'utilisation de la guimauve dans la bibliothèque de schémas
Comment importer NoteBook en tant que module dans Jupyter (IPython)
[Shell] Comment obtenir la branche distante par défaut avec Git
Programmation pour combattre dans le monde ~ 5-1
Comment émettre intentionnellement une erreur dans le shell pendant les tests
Programmer pour combattre dans le monde 5-3
[Python] Comment faire PCA avec Python
Comment gérer une session dans SQLAlchemy
Comment utiliser la fonction zip
[sh] Comment stocker les résultats de l'exécution de la commande dans des variables
Comment déterminer l'existence d'un élément sélénium en Python
Comment installer OpenCV sur Cloud9 et l'exécuter en Python
Comment implémenter du code Java en arrière-plan de Red Hat (Linux ONE)
Comment résoudre ModuleNotFoundError: aucun module nommé XXX dans Jupyter Notebook