Перейти к основному содержимому

Команды

Команда представляет собой программный объект Salt.Box, взаимодействующий со службой salt-master с целью создания SaltStack Job, получения ответов (Job Return) от миньонов и сохранения их в базе данных Salt.Box.

Создание команды

Создание команды из карточки миньона

Для создания команды из карточки миньона на странице миньонов откройте карточку миньона и нажмите кнопку Create Job, расположенную в верхней левой части карточки Рис. 1.

Карточка миньона
Рисунок 1. Карточка миньона

Будет выведено диалоговое окно создания команды, при этом в полях Target type и Target будут указаны необходимые значения: тип нацеливания и идентификатор миньона Рис. 2.

Диалоговое окно создания команды. Выбор функции
Рисунок 2. Диалоговое окно создания команды. Выбор функции

Создание команды со страницы команд

Для создания команды со страницы команд в главном меню выберите пункт Команды.
Далее на странице команд нажмите кнопку Create Job, расположенную в верхней левой части страницы.
Будет выведено диалоговое окно создания команды, при этом в поле Target type будет указано значение по умолчанию — glob, а поле Target будет пустым.

Выбор функции

В выпадающем списке Function выберите функцию, которая будет вызываться командой Рис. 2.
В таблице 1 приведён перечень доступных функций.

Таблица 1. Функции модулей выполнения
Группа функцийФункцияНазначение
cmdcmd.runВыполнить переданную команду и вернуть вывод в виде строки
cpcp.get_dirИспользуется для рекурсивного копирования каталога с мастера
cp.get_filЗагрузить файл с URL в каталог кэша миньона и вернуть содержимое этого файла. Возвращает False, если Salt не удалось кэшировать файл с URL
cp.get_urlИспользуется для получения одного файла с URL
diskdisk.blkidВозвращает атрибуты блочного устройства: UUID, LABEL и т. д. Эта функция работает только в системах, где доступен blkid
disk.fstypeВозвращает имя файловой системы указанного устройства
disk.get_fstype_from_pathВозвращает тип файловой системы базового устройства для указанного пути
disk.usageВозвращает информацию об использовании для томов, смонтированных на этом миньоне
filefile.chgrpСменить группу файла
file.chownСменить владельца файла, установить указанные пользователя и группу файла
file.diskusageРекурсивно расчитать использование диска по указанному пути и вернуть это значение в байтах
file.grepВыполнить grep указанной строки в указанном файле
file.lineПострочное редактирование файла
file.linkСоздать жесткую ссылку на файл
file.mkdir
file.moveПереместить файл или каталог
file.readВернуть содержимое файла
file.readdirВернуть список, содержащий содержимое каталога
file.rmdirУдалить указанный каталог.
file.statsВернуть словарь, содержащий статистику для указанного файла
file.touchАналогично команде touch — создать файл, если он не существует, или обновить atime и mtime, если файл существует
grainsgrains.appendДобавить значение в список в файле конфигурации grains. Если grain не существует, добавляется ключ grain, а значение добавляется к новому grain как элемент списка
grains.delkeyПолностью удалить grain, т.е. удалить ключ и значение grain
grains.itemВернуть один или несколько элементов grain
grains.itemsВернуть все элементы grains миньона
grains.setУстановить ключ в произвольное значение. Функция используется как setval, но работает с вложенными ключами.
Эта функция консервативна. Она перезапишет запись, только если ее значение и заданное значение не являются списком или словарем. Параметр force используется для разрешения перезаписи во всех случаях
mountmount.activeВернуть список активных смонтированных файловых систем
mount.fstabПросмотреть содержимое fstab
mount.get_device_from_pathВернуть базовое устройство для указанного пути
mount.get_mount_from_pathВернуть смонтированную файловую систему, предоставляющую указанный путь
mount.mountСмонтировать устройство
mount.remountПопытаться перемонтировать устройство. Если устройство еще не смонтировано, вызывается mount
mount.swapsВернуть словарь, содержащий информацию об активном swap
mount.umountПопытаться размонтировать устройство, указав каталог, в который оно смонтировано
networknetwork.active_tcpВернуть словарь, содержащий информацию обо всех запущенных TCP-соединениях (в настоящее время только для Linux и Solaris)
network.arpВернуть таблицу arp миньона
network.connectПроверить подключение к хосту с использованием определенного порта миньона
network.default_routeВернуть маршрут(ы) по умолчанию из таблицы маршрутизации
network.digВыполнить DNS-поиск с помощью dig
network.fqdnsВернуть все известные FQDN для системы перебором всех интерфейсов с попытками выполнить обратное разрешение (исключая интерфейс 'lo')
network.get_fqdnПолучить полное доменное имя
network.get_hostnameПолучить имя хоста
network.get_routeВернуть информацию о маршрутизации для указанного IP-адреса назначения
network.hwaddrВернуть аппаратный адрес (MAC-адрес) заданного интерфейса
network.interfaceВернуть адрес inet для заданного интерфейса
network.interfacesВернуть словарь информации обо всех интерфейсах миньона
network.ip_addrsВернуть список адресов IPv4, назначенных хосту. 127.0.0.1 игнорируется, если не указано 'include_loopback=True'. Если указано 'interface', то будут возвращены только IP-адреса этого интерфейса. Указание CIDR 'cidr="10.0.0.0/8"' вернет только адреса, которые находятся в этой подсети. Если 'type' = 'public', то будут возвращены только публичные адреса. Аналогично для 'type'='private'
network.mod_hostnameИзменить имя хоста
network.netstatВернуть информацию об открытых портах и ​​состояниях
network.pingВыполнить ICMP-пинг на хост
network.routesВернуть текущие настроенные маршруты из таблицы маршрутизации
network.subnetsВозвращает список подсетей IPv4, к которым принадлежит хост
network.tracerouteВыполнить трассировку маршрута на сторонний хост
network.wolSОтправить пакет Wake On Lan на хост
saltutilsaltutil.kill_all_jobsОтправить сигнал kill (SIGKILL 9) всем текущим работающим заданиям
saltutil.kill_jobОтправить сигнал kill (SIGKILL 9) процессу указанного задания salt
saltutil.runningВернуть данные обо всех работающих процессах salt на minion
saltutil.sync_allСинхронизировать все динамические модули с файлового сервера для определенной среды. Эта функция синхронизирует пользовательские модули, состояния (states), маяки (beacons), grains, модули возврата (returners), модули вывода (output modules), рендереры (renderers) и утилиты
saltutil.sync_grainsСинхронизировать модули grains миньона с salt://_grains
saltutil.sync_modulesСинхронизировать модули выполнения миньона с salt://_modules
saltutil.sync_statesСинхронизировать модули состояния миньона с salt://_states
statestate.applyЭта функция вызовет state.highstate <salt.modules.state.highstate> или state.sls <salt.modules.state.sls> в зависимости от аргументов, переданных этой функции
systemd_servicesystemd_service.available
systemd_service.disableОтключить указанную службу (запретить запуск при загрузке системы)
systemd_service.disabledВывести, запрещён ли запуск указзанной службы при загрузке системы
systemd_service.enableВключить запуск указанной службы при загрузке системы
systemd_service.get_allВернуть список всех доступных служб
systemd_service.maskЗамаскировать указанную службу с помощью systemd
systemd_service.maskedПроверить, замаскирована ли служба
systemd_service.restartПерезапустить указанную службу с помощью systemd
systemd_service.showПоказать свойства одного или нескольких юнитов/задач или менеджера
systemd_service.statusВозвращает статус службы через systemd. Если имя содержит подстановку, возвращается словарь, сопоставляющий имя службы со значениями True/False
systemd_service.stopОстановить указанную службу с помощью systemd
testtest.echoВернуть указанную строку — используется для проверки соединения
test.pingИспользуется для проверки работоспособности и ответа миньона. Не является ICMP-пингом
test.rand_sleepПерейти в состояние сна на случайное количество секунд. Используется для проверки длительных команд и миньонов, отвечающих с разными интервалами
test.versionВернуть версию Salt на миньоне
test.versionsВернуть версии компонентов, используемых salt
win_servicewin_service.availableПроверить, доступна ли служба в системе
win_service.deleteУдалить указанную службу
win_service.disableОтключить запуск указанной службы при загрузке системы
win_service.disabledПроверить, отключен ли запуск указанной службы при загрузке системы
win_service.enableВключить запуск указанной службы при загрузке системы
win_service.enabledПроверить, включен ли запуск указанной службы при загрузке системы
win_service.get_allВернуть список всех установленных служб
win_service.get_disabledВернуть список отключенных служб. Отключенная служба определяется как служба, помеченная как 'Отключено' или 'Вручную'
win_service.get_enabledВернуть список включенных служб. Включенная служба определяется как служба, отмеченная как Auto Start
win_service.getsidВернуть SID этой службы Windows
win_service.info
win_service.missingЗначение, обратное возвращаемому функцией win_service.available
win_service.restartПерезапустить указанную службу. Службе передается команда stop, за которой следует start
win_service.startЗапустить указанную службу
win_service.statusВернуть статус службы. Если имя службы содержит подстановку, возвращается словарь, сопоставляющий имя службы со значениями True/False
win_service.stopОстановить указанную службу

Укажите аргументы, если их принимает функция.

Выбор типа нацеливания, указание цели

В выпадающем списке Target type выберите тип нацеливания Рис. 3.
От выбора типа нацеливания зависит способ интерпретации поля Target — цели, указывающей на отдельный миньон или группу миньонов.
Сведения о типах нацеливания приведены в таблице 2.

Выбор типа нацеливания для новой команды
Рисунок 3. Выбор типа нацеливания для новой команды


Таблица 2. Типы нацеливания
Тип нацеливанияЗначениеПояснение
globПодстановка в стиле bashСопоставление по умолчанию, которое используется в SaltStack, — это подстановка в стиле оболочки bash вокруг идентификатора миньона (glob)
pcreРегулярное выражение в стиле PerlИспользовать pcre-выражения
listPython-список хостовИспользовать список, разделённый запятыми
grainСопоставление с grainsИспользовать значения элементов grain. Синтаксис: ключ элемента grain и следующее за ним glob-выражение, например: os:Alt*
grain_pcreСопоставление с grains в сочетании с регулярным выражениемИспользовать значения элементов grain. Синтаксис: ключ элемента grain и следующее за ним pcre-выражение, например: os:Alt.*
pillarСопоставление с данными pillarИспользовать значение pillar. Синтаксис: ключ элемента pillar и следующее за ним glob-выражение, например: role:production*
pillar_pcreСопоставление с данными pillar в сочетании с регулярным выражениемИспользовать значение pillar. Синтаксис: ключ элемента pillar и следующее за ним pcre-выражение, например: role:prod.*
nodegroupСопоставление с nodegroupИспользовать одну из предопределённых групп узлов
rangeИспользовать сервер Range для сопоставленияиспользовать выражение для диапазона (например, %cluster). Использование параметра Range требует настройки сервера диапазона и указания его местоположения в главном файле конфигурации
compoundИспользовать составное нацеливаниеОпция "составная цель" позволяет использовать цели нескольких типов в одном выражении, обеспечивая высокую степень детализации сопоставления. Цели разных типов в выражении разделены пробелами и логическими операторами not, and, or; перед целями, отличными от glob, стоит идентификатор, соответствующий типу аргумента конкретной цели, например: salt 'G@os:RedHat and webser* or E@database.*'
ipcidrСопоставление на основе подсети (нотация CIDR) или адреса IPv4Сопоставление по подсети (в нотации CIDR) или IP-адресу

В поле Target укажите цель команды — выражение в зависимости от выбранного типа нацеливания.

Подтверждение создания команды

Нажмите кнопку Create Рис. 4.

Диалоговое окно создания команды
Рисунок 4. Диалоговое окно создания команды

Команда будет создана, отобразится окно с карточкой команды Рис. 5.

к сведению

Выполнение команды начинается немедленно после создания.

Карточка команды

Карточка команды
Рисунок 5. Карточка команды


Карточка команды состоит из двух блоков:

  • блок атрибутов команды Рис. 5 [1]

    перечень атрибутов команды приведён в таблице 3

  • таблица миньонов Рис. 5 [2]

    на вкладке отображается список обработанных целей (миньонов, на которые доставлена команда)

В таблице 3 приведён перечень атрибутов команды.

Таблица 3. Перечень атрибутов команды
АтрибутОписание
TargetsЦель команды
FunctionФункция модуля выполнения
Target TypeТип нацеливания
ArgumentsПозиционные аргументы
UserПользователь, создавший команду
Key-Value argumentsСправочник именованных аргументов

Выполнение команды

Граф выполнения команды

На Рис. 6 показан граф выполнения команды.

Условия переходов между статусами команды приведены в таблице 4.

Рисунок 6. Граф выполнения команды

Таблица 4. Таблица переходов графа выполнения команды
Метка
дуги
Условие перехода
1В течение 10 минут с момета создания команды получено подтверждение от salt-master о создании SaltStack Job
2В течение 10 минут с момета создания команды не получено подтверждение от salt-master о создании SaltStack Job

Результаты выполнения команды

При нажатии значка + слева от записи миньона открывается JSON-выражение — ответ, полученный от миньона Рис. 5 [3].

примечание

Записи в таблице миньонов появляются по мере получения ответов от миньонов.


В таблице 5 приведён перечень полей таблицы миньонов.

Таблица 5. Перечень полей таблицы миньонов
АтрибутЗначение
MIDИдентификатор миньона
SuccessСтатус выполнения
Return CodeКод возврата функции
TimestampВремя ответа миньона