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) и т.п.