SaltStack - API Python
O Salt fornece acesso programático a todos os seus comandos. Salt fornece módulos diferentes para cada seção do sistema Salt. Vamos aprender o básico da API python e sobre como executar os comandos salt básicos neste capítulo.
Configuração
o salt.config módulo é usado para acessar os detalhes de configuração do Salt.
import salt.config
opts = salt.config.client_config('/etc/salt/master')
Aqui o client_config lê o arquivo de configuração salt e retorna os detalhes da configuração como dicionário.
Carregador
o salt.loader módulo é usado para carregar cada módulo em Salt, como grãos, minions, etc.
import salt.loader
opts = salt.config.minion_config('/etc/salt/minion')
grains = salt.loader.grains(opts)
Aqui, grains lê os detalhes dos grãos no sistema de Sal e os devolve.
Módulo Cliente
o salt.client O módulo é usado para executar os comandos salt, salt-call e salt-SSH de forma programática.
As classes python mais importantes são as seguintes -
- salt.client.LocalClient
- salt.client.Caller
- salt.client.ssh.client.SSHClient
A principal função fornecida pela maioria do módulo cliente é cmd. Esta função envolve as opções CLI e as executa, que é semelhante à linha de comando e retorna os resultados como estruturas de dados python.
LocalClient
O LocalClient é usado para enviar comandos do mestre para os asseclas e retornar os resultados ao mestre.
import salt.client
local = salt.client.LocalClient()
local.cmd('*', 'test.ping')
Irá produzir o seguinte output -
{'minion1': True, 'minion2': True }
Chamador
O chamador é usado para executar salt-call programaticamente e retornar os resultados.
import salt.client
caller = salt.client.Caller()
caller.cmd('test.ping')
Irá produzir o seguinte output -
True
SSHClient
O SSHCient é usado para executar o salt-ssh programaticamente e retornar os resultados.
import salt.client.ssh.client
ssh = salt.client.ssh.client.SSHClient()
ssh.cmd('*', 'test.ping')
Irá produzir o seguinte output -
{'minion1': True, 'minion2': True }
CloudClient
O módulo salt.cloud é usado para executar os comandos salt-cloud de forma programática.
client = salt.cloud.CloudClient(path = '/etc/salt/cloud')
O módulo de nuvem fornece funções para criar VMs (criar), para destruir VMs (destruir), listar imagens fornecidas por um provedor de nuvem (list_images), listar locais de um provedor de nuvem (list_locations), listar tamanhos de máquina de um provedor de nuvem (list_sizes), etc.