recherche
Maisondéveloppement back-endTutoriel PythonExemples de méthodes utilisées par ansible comme bibliothèque de modules python

ansible est un package python, un logiciel complet de décompression et de lecture. Les seules exigences pour le client sont ssh et python, et le package python-simplejson est installé. L'article suivant présente principalement des exemples de méthodes d'utilisation d'ansible comme bibliothèque de modules Python. Les amis dans le besoin peuvent s'y référer.

Avant-propos

ansible est un nouvel outil d'exploitation et de maintenance automatisée Il est développé sur la base de Python et intègre de nombreux outils d'exploitation et de maintenance (puppet. , cfengine, chef, func, fabric), il réalise des fonctions telles que la configuration du système par lots, le déploiement de programmes par lots et l'exécution par lots de commandes. Ansible fonctionne sur la base de modules et n'a pas la possibilité de se déployer par lots. Ce qui a vraiment un déploiement par lots, c'est le module exécuté par ansible, et ansible ne fournit qu'un cadre.

Comprend principalement :

(1) Plugins de connexion : responsables de la communication avec l'extrémité surveillée

(2) Inventaire de l'hôte : l'appareil d'exploitation spécifié ; host est l'hôte de surveillance défini dans un fichier de configuration ;

(3) Divers modules de base, modules de commande, modules personnalisés

(4) Utiliser des plug-ins ; pour exécuter des fonctions telles que l'enregistrement des e-mails du journal ;

(5) Playbook : lorsque le script exécute plusieurs tâches, le nœud peut exécuter plusieurs tâches à la fois si nécessaire.

Ansible est un très bon outil parmi les outils d'exploitation et de maintenance. Personnellement, je l'aime bien. Vous pouvez configurer le fichier yml de manière flexible en fonction de vos besoins pour répondre à différents besoins commerciaux. il est très facile de démarrer. Dans certains cas, vous devrez peut-être utiliser ansible comme composant de bibliothèque de python dans votre propre script. Le script d'aujourd'hui montrera comment ansible est combiné avec un script python, c'est-à-dire comment utiliser ansible dans. un script python. Nous nous déplions progressivement.

Regardez le premier exemple :

#!/usr/bin/python 
import ansible.runner
import ansible.playbook
import ansible.inventory
from ansible import callbacks
from ansible import utils
import json
 
# the fastest way to set up the inventory
 
# hosts list
hosts = ["10.11.12.66"]
# set up the inventory, if no group is defined then 'all' group is used by default
example_inventory = ansible.inventory.Inventory(hosts)
 
pm = ansible.runner.Runner(
 module_name = 'command',
 module_args = 'uname -a',
 timeout = 5,
 inventory = example_inventory,
 subset = 'all' # name of the hosts group 
 )
 
out = pm.run()
 
print json.dumps(out, sort_keys=True, indent=4, separators=(',', ': '))

Cet exemple nous montre comment pour exécuter des commandes système dans des scripts python via ansible Regardons le deuxième exemple et connectons-le à notre fichier yml.

Le contenu du fichier yml simple est le suivant :

- hosts: sample_group_name
 tasks:
 - name: just an uname
 command: uname -a

Le script python qui appelle le playbook est le suivant :

#!/usr/bin/python 
import ansible.runner
import ansible.playbook
import ansible.inventory
from ansible import callbacks
from ansible import utils
import json
 
### setting up the inventory
 
## first of all, set up a host (or more)
example_host = ansible.inventory.host.Host(
 name = '10.11.12.66',
 port = 22
 )
# with its variables to modify the playbook
example_host.set_variable( 'var', 'foo')
 
## secondly set up the group where the host(s) has to be added
example_group = ansible.inventory.group.Group(
 name = 'sample_group_name'
 )
example_group.add_host(example_host)
 
## the last step is set up the invetory itself
example_inventory = ansible.inventory.Inventory()
example_inventory.add_group(example_group)
example_inventory.subset('sample_group_name')
 
# setting callbacks
stats = callbacks.AggregateStats()
playbook_cb = callbacks.PlaybookCallbacks(verbose=utils.VERBOSITY)
runner_cb = callbacks.PlaybookRunnerCallbacks(stats, verbose=utils.VERBOSITY)
 
# creating the playbook instance to run, based on "test.yml" file
pb = ansible.playbook.PlayBook(
 playbook = "test.yml",
 stats = stats,
 callbacks = playbook_cb,
 runner_callbacks = runner_cb,
 inventory = example_inventory,
 check=True
 )
 
# running the playbook
pr = pb.run() 
 
# print the summary of results for each host
print json.dumps(pr, sort_keys=True, indent=4, separators=(',', ': '))

Pour plus d'articles sur la façon d'utiliser ansible comme bibliothèque de modules python, veuillez faire attention au site Web PHP chinois !

Déclaration
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
En quoi les tableaux Numpy diffèrent-ils des tableaux créés à l'aide du module de tableau?En quoi les tableaux Numpy diffèrent-ils des tableaux créés à l'aide du module de tableau?Apr 24, 2025 pm 03:53 PM

NumpyArraysarebetterFornumericalOperations andMulti-dimensionaldata, tandis que la réalisation de la réalisation

Comment l'utilisation des tableaux Numpy se compare-t-il à l'utilisation des tableaux de modules de tableau dans Python?Comment l'utilisation des tableaux Numpy se compare-t-il à l'utilisation des tableaux de modules de tableau dans Python?Apr 24, 2025 pm 03:49 PM

NumpyArraysareBetterForheAVYVumericalComputing, tandis que la réalisation de points contraints de réalisation.1) NumpyArraySoFerversATACTORATIONS ajusté pour les données

Comment le module CTYPES est-il lié aux tableaux dans Python?Comment le module CTYPES est-il lié aux tableaux dans Python?Apr 24, 2025 pm 03:45 PM

CTYPESALLOWSCREATINGAndMANIPulationc-styLearRaySInpython.1) UsectypeStOinterfaceWithClibraryForPerformance.2) Createc-stylearRaysFornumericalComptations.3) PassArrayStocfunction

Définissez 'Array' et 'List' dans le contexte de Python.Définissez 'Array' et 'List' dans le contexte de Python.Apr 24, 2025 pm 03:41 PM

Inpython, une "liste" isaversatile, mutablesencethatcanholdmixed datatypes, tandis que "tableau" est une cohérence homogène, une séquestre.

Une liste Python est-elle mutable ou immuable? Qu'en est-il d'un tableau Python?Une liste Python est-elle mutable ou immuable? Qu'en est-il d'un tableau Python?Apr 24, 2025 pm 03:37 PM

Pythonlistsandarraysarebothmutable.1) listsaxiblendupportheterogeneousdatabutarelessmemory-efficace.2) ArraysareMoreMory-EfficientForHomogeneousDatabutlessversatile, nécessitant un niveaumorypecodeusagetoavoiderrors.

Python vs C: Comprendre les principales différencesPython vs C: Comprendre les principales différencesApr 21, 2025 am 12:18 AM

Python et C ont chacun leurs propres avantages, et le choix doit être basé sur les exigences du projet. 1) Python convient au développement rapide et au traitement des données en raison de sa syntaxe concise et de son typage dynamique. 2) C convient à des performances élevées et à une programmation système en raison de son typage statique et de sa gestion de la mémoire manuelle.

Python vs C: Quelle langue choisir pour votre projet?Python vs C: Quelle langue choisir pour votre projet?Apr 21, 2025 am 12:17 AM

Le choix de Python ou C dépend des exigences du projet: 1) Si vous avez besoin de développement rapide, de traitement des données et de conception du prototype, choisissez Python; 2) Si vous avez besoin de performances élevées, de faible latence et de contrôle matériel, choisissez C.

Atteindre vos objectifs python: la puissance de 2 heures par jourAtteindre vos objectifs python: la puissance de 2 heures par jourApr 20, 2025 am 12:21 AM

En investissant 2 heures d'apprentissage Python chaque jour, vous pouvez améliorer efficacement vos compétences en programmation. 1. Apprenez de nouvelles connaissances: lire des documents ou regarder des tutoriels. 2. Pratique: Écrivez du code et complétez les exercices. 3. Revue: consolider le contenu que vous avez appris. 4. Pratique du projet: Appliquez ce que vous avez appris dans les projets réels. Un tel plan d'apprentissage structuré peut vous aider à maîtriser systématiquement Python et à atteindre des objectifs de carrière.

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Listes Sec

Listes Sec

SecLists est le compagnon ultime du testeur de sécurité. Il s'agit d'une collection de différents types de listes fréquemment utilisées lors des évaluations de sécurité, le tout en un seul endroit. SecLists contribue à rendre les tests de sécurité plus efficaces et productifs en fournissant facilement toutes les listes dont un testeur de sécurité pourrait avoir besoin. Les types de listes incluent les noms d'utilisateur, les mots de passe, les URL, les charges utiles floues, les modèles de données sensibles, les shells Web, etc. Le testeur peut simplement extraire ce référentiel sur une nouvelle machine de test et il aura accès à tous les types de listes dont il a besoin.

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

DVWA

DVWA

Damn Vulnerable Web App (DVWA) est une application Web PHP/MySQL très vulnérable. Ses principaux objectifs sont d'aider les professionnels de la sécurité à tester leurs compétences et leurs outils dans un environnement juridique, d'aider les développeurs Web à mieux comprendre le processus de sécurisation des applications Web et d'aider les enseignants/étudiants à enseigner/apprendre dans un environnement de classe. Application Web sécurité. L'objectif de DVWA est de mettre en pratique certaines des vulnérabilités Web les plus courantes via une interface simple et directe, avec différents degrés de difficulté. Veuillez noter que ce logiciel

SublimeText3 version anglaise

SublimeText3 version anglaise

Recommandé : version Win, prend en charge les invites de code !

Version crackée d'EditPlus en chinois

Version crackée d'EditPlus en chinois

Petite taille, coloration syntaxique, ne prend pas en charge la fonction d'invite de code