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.