Red de conocimiento informático - Material del sitio web - Cómo ejecutar scripts en Python usando la API de Ansible 2.0

Cómo ejecutar scripts en Python usando la API de Ansible 2.0

En ansible 1.9, la API es algo bastante simple. El dicho oficial es "bastante simple", que significa bonito y sencillo.

importar ansible.runner

runner = ansible.runner.

importar ansible.runner

runner = ansible.runner()

module_name='ping',

module_args='',

pattern='web*',

forks=10

)

datastructure = runner.run()

Con ansible 2.0, la situación es "un poco complicada", Dios mío, es realmente problemático.

La simplicidad y la flexibilidad son pescado y patatas fritas.

¿Cómo funciona la API ansible 2.0?

ansible2.0 está más cerca del método de ejecución de comandos común de ansible cli. A diferencia de la versión anterior, que solo puede enviar un único comando o libro de jugadas, también se recomienda que los usuarios dividan el libro de jugadas de cada tarea. llamando a ansibleAPI. Salga y obtenga los resultados de cada tarea. Esto le brinda la flexibilidad de manejar los comentarios durante la ejecución de tareas por lotes.

La clase "ansible.executor.task_queue_manager" resume el modelo de cola para las operaciones de ejecución, incluida la configuración de varios parámetros ambientales.

La configuración de cada tarea durante la ejecución, o libro de jugadas.

Estas dos cosas contienen casi todos los parámetros que se pueden configurar durante la ejecución y son lo suficientemente flexibles como para que puedas escribir tu propio programa en ejecución versión 1.9 como loco.

ansible.executor.task_queue_manager

Este es un módulo interno de ansible (ansible/executor/task_queue_manager.py). El código fuente inicializado es el siguiente:

clase TaskQueueManager:

'''

Esta clase crea un grupo de bifurcación de trabajador a través

Una bifurcación del controlador de resultados y un

objeto administrador con una estructura/cola de datos compartida para manejar las necesidades multiproceso de Ansible para coordinar

el trabajo entre todos los procesos.

El administrador de colas es responsable de cargar el complemento de política de Play, que asigna tareas de Play a los hosts.

' '

def __init__(self, inventario, variable_manager, cargador, opciones, contraseñas, stdout_callback=None, run_additional_callbacks=True, run_tree=False).

run_tree=False):

self._inventory = inventario

self._variable_manager = variable_manager

self._loader = cargador

self. _options = opciones

self._stats = AggregateStats()

self.passwords = contraseñas

self._options = opciones

self. _stats = AggregateStats()

self._stats = AggregateStats()