Учебники

SaltStack — Python API

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

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

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

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

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

погрузчик

Модуль salt.loader используется для загрузки в Солт всех модулей, таких как зерна, миньоны и т. Д.

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

Здесь зерна считывают детали зерен в соляной системе и возвращают их.

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

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

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

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

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

LocalClient

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

import salt.client

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

Это даст следующий результат

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

гость

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

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

Это даст следующий результат

True

SSHClient

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

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

Это даст следующий результат

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

CloudClient

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

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

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