SaltStack - API Python

Salt предоставляет программный доступ ко всем своим командам. Salt предоставляет разные модули для каждого раздела системы Salt. Давайте изучим основы API-интерфейса python и узнаем, как запускать основные команды соли в этой главе.

Конфигурация

В salt.config модуль используется для доступа к деталям конфигурации Salt.

import salt.config
opts = salt.config.client_config('/etc/salt/master')

Здесь client_config читает файл конфигурации соли и возвращает детали конфигурации в виде словаря.

Загрузчик

В salt.loader module используется для загрузки каждого модуля в Salt, такого как зерна, миньоны и т. д.

import salt.loader
opts = salt.config.minion_config('/etc/salt/minion')
grains = salt.loader.grains(opts)

Вот, grains считывает сведения о зернах в системе Salt и возвращает их.

Клиентский модуль

В salt.client Модуль используется для программного выполнения команд salt, salt-call и salt-SSH.

Наиболее важные классы Python следующие:

  • salt.client.LocalClient
  • salt.client.Caller
  • salt.client.ssh.client.SSHClient

Основная функция, предоставляемая большей частью клиентского модуля, - это cmd. Эта функция обертывает параметры интерфейса командной строки и выполняет ее, что похоже на командную строку и возвращает результаты в виде структур данных Python.

LocalClient

LocalClient используется для отправки команд от мастера к соляным миньонам и возврата результатов мастеру.

import salt.client

local = salt.client.LocalClient()
local.cmd('*', 'test.ping')

Это приведет к следующему output -

{'minion1': True, 'minion2': True }

Звонящий

Вызывающий используется для запуска salt-call программно и вернуть результаты.

import salt.client
caller = salt.client.Caller()
caller.cmd('test.ping')

Это приведет к следующему output -

True

SSHClient

SSHCient используется для запуска salt-ssh программно и вернуть результаты.

import salt.client.ssh.client
ssh = salt.client.ssh.client.SSHClient()
ssh.cmd('*', 'test.ping')

Это приведет к следующему output -

{'minion1': True, 'minion2': True }

CloudClient

Модуль salt.cloud используется для программного выполнения команд salt-cloud.

client = salt.cloud.CloudClient(path = '/etc/salt/cloud')

Облачный модуль предоставляет функции для создания виртуальных машин (создание), уничтожения виртуальных машин (уничтожение), списка образов, предоставленных облачным провайдером (list_images), списка местоположений облачного провайдера (list_locations), списка размеров машин облачного провайдера (list_sizes) и т.п.