SaltStack - API de Python
Salt proporciona acceso mediante programación a todos sus comandos. Salt proporciona diferentes módulos para cada sección del sistema Salt. Aprendamos los conceptos básicos de la API de Python y sobre cómo ejecutar los comandos salt básicos en este capítulo.
Configuración
los salt.config El módulo se utiliza para acceder a los detalles de configuración de Salt.
import salt.config
opts = salt.config.client_config('/etc/salt/master')
Aquí el client_config lee el archivo de configuración de salt y devuelve los detalles de configuración como diccionario.
Cargador
los salt.loader El módulo se usa para cargar cada módulo en Salt, como granos, minions, etc.
import salt.loader
opts = salt.config.minion_config('/etc/salt/minion')
grains = salt.loader.grains(opts)
Aquí, grains lee los detalles de los granos en el sistema Salt y lo devuelve.
Módulo cliente
los salt.client El módulo se utiliza para ejecutar los comandos salt, salt-call y salt-SSH mediante programación.
Las clases de Python más importantes son las siguientes:
- salt.client.LocalClient
- salt.client.Caller
- salt.client.ssh.client.SSHClient
La función principal proporcionada por la mayor parte del módulo de cliente es cmd. Esta función envuelve las opciones de CLI y las ejecuta, que es similar a la línea de comando y devuelve los resultados como estructuras de datos de Python.
LocalClient
El LocalClient se utiliza para enviar comandos desde el maestro a los minions de sal y devolver los resultados al maestro.
import salt.client
local = salt.client.LocalClient()
local.cmd('*', 'test.ping')
Producirá lo siguiente output -
{'minion1': True, 'minion2': True }
Llamador
El llamador se utiliza para ejecutar salt-call programáticamente y devuelve los resultados.
import salt.client
caller = salt.client.Caller()
caller.cmd('test.ping')
Producirá lo siguiente output -
True
SSHClient
El SSHCient se utiliza para ejecutar el salt-ssh programáticamente y devuelve los resultados.
import salt.client.ssh.client
ssh = salt.client.ssh.client.SSHClient()
ssh.cmd('*', 'test.ping')
Producirá lo siguiente output -
{'minion1': True, 'minion2': True }
CloudClient
El módulo salt.cloud se utiliza para ejecutar los comandos de salt-cloud mediante programación.
client = salt.cloud.CloudClient(path = '/etc/salt/cloud')
El módulo de nube proporciona funciones para crear máquinas virtuales (crear), destruir máquinas virtuales (destruir), enumerar imágenes proporcionadas por un proveedor de nube (list_images), enumerar ubicaciones de un proveedor de nube (list_locations), enumerar tamaños de máquina de un proveedor de nube (list_sizes), etc.