Рабочая область Highstate используется для управления конфигурацией системы и ее мониторинга. Чтобы получить аналитические данные и узнать тенденции, связанные с дрейфом конфигураций, по всем служебным серверам, можно просмотреть журнал о запусках Highstate в инфраструктуре.

Вы как системный администратор знаете, насколько важно поддерживать соответствие конфигурации системы нормативным требованиям, выявлять системы, в которых возникли ошибки или в которые были внесены изменения, и как можно быстрее снова приводить эти системы в соответствие. Рабочая область Highstate предоставляет ценные аналитические данные о конфигурации системы и инструменты для управления дрейфом конфигураций.

Что такое Highstate?

Вместо того чтобы вручную по одному настраивать каждый служебный сервер или каждое приложение, можно использовать систему управления состоянием Automation Config, позволяющую создавать файлы состояния, которые можно применять одновременно ко множеству служебных серверов. Эти файлы состояния могут включать набор инструкций для Automation Config, в которых указывается, какие операции и в каком порядке должны выполняться на служебном сервере. Система управления состоянием обеспечивает надлежащую и максимально эффективную настройку каждого служебного сервера.

Если у вас несколько сотен файлов состояния и тысяч служебных серверов, запуск каждого файла состояния займет много времени. Более быстрый и интуитивно понятный способ применения файлов состояния к служебным серверам — выполнить задание Highstate. При выполнении задания Highstate вызывается функция state.highstate. Функция state.highstate применяет все состояния Salt, представленные в файле top.sls, который создается на главном сервере Salt.

Выполнение задания Highstate может быть полезно в следующих случаях.
  • Инфраструктура настраивается впервые, и для этого необходимо стандартизировать конфигурации во всей среде.
  • Имеются критически важные системы, которые должны всегда соответствовать нормативным требованиям. Рабочая область Расписание в Automation Config позволяет запланировать задание Highstate, которое выполняется один раз в неделю для обеспечения надлежащей настройки компьютеров.

Файл top.sls сопоставляет состояния Salt с группой целевых объектов и формируется из среды Salt, целевых критериев и файлов состояния для запуска. Служебные серверы загружают файл top.sls и пытаются сопоставить содержащиеся в нем выражения. Если находится соответствующее выражение, служебный сервер запускает указанные файлы состояния. Например, можно сформировать файл top.sls так, чтобы применить одни файлы состояния ко всем служебным серверам, другие — к служебным серверам CentOS, а третьи — к служебным серверам, идентификаторы которых содержат строку web.

base: 
  '*':
    - vim
    - scripts
  'os:CentOS': 
    - match: grain 
    - centos-config 
  '*web*':
    - apache
    - django

Если при выполнении задания Highstate происходит дрейф конфигурации, Automation Config переводит служебные серверы и приложения в состояние конфигурации, соответствующее нормативным требованиям. Если конфигурацию необходимо изменить, Automation Config обеспечивает быстрое развертывание изменений на затронутых служебных серверах. Затем в рабочей области Highstate можно посмотреть, какие изменения были внесены во время последнего выполнения задания Highstate. Изменения в инфраструктуре наглядно представлены в диаграммах и отчетах рабочей области.

Рекомендуется проверять изменения в среде разработки или производственного тестирования. В случае успешного выполнения состояний их можно применить в производственной среде.

Вы также можете запустить Highstate в режиме пробного выполнения. Если запустить Highstate в режиме пробного выполнения, Automation Config создаст возвращаемый результат задания, демонстрирующий, какие изменения были бы внесены на каждом служебном сервере при применении состояний. Дополнительные сведения о режиме пробного выполнения см. в разделе Создание заданий.

Важно!:

Перед первым выполнением задания Highstate необходимо создать и настроить файл top.sls на главном сервере Salt. См. раздел Организация состояний в руководстве пользователя Salt для получения дополнительных сведений о состояниях Salt и файле top.sls.

Выполнение задания Highstate

После настройки файла top.sls можно выполнить первое задание Highstate.

Для этого выполните указанные ниже действия.

  1. Перейдите на вкладку Состояния в рабочей области Highstate.
  2. Нажмите Запустить Highstate.
  3. В диалоговом окне выберите целевой объект, для которого необходимо выполнить задание Highstate.
  4. Нажмите Запустить Highstate.

После завершения процесса результаты первого запуска Highstate можно просмотреть на нескольких уровнях.

  • Глобальный уровень: просмотр возвращаемых результатов Highstate для всей среды.
  • Целевой уровень: просмотр возвращаемых результатов Highstate по целевой группе.
  • Уровень служебных серверов: просмотр возвращаемых результатов Highstate по служебному серверу.

Глобальный уровень

Соответствие Highstate нормативным требованиям для всей среды можно посмотреть на вкладках Состояния и Служебные серверы. Глобальный уровень позволяет оценить общее состояние конфигурации системы с момента последнего выполнения задания Highstate.

Рабочая область Highstate в пользовательском интерфейсе SaltStack Config после последнего запуска Highstate

На всех уровнях последние данные Highstate извлекаются из каждого служебного сервера независимо от того, получены ли они во время последнего выполнения задания Highstate или из нескольких запусков Highstate. Используйте раскрывающееся меню Ограничить на вкладке Состояния, чтобы отобразить в рабочей области Highstate только последние данные.

Глобальный уровень включает следующую информацию для всех состояний.

Термин Описание
Состояние Определение идентификатора для состояния, например common-centos-packages.
Файл SLS Файл, содержащий определение состояния, например centos-config.sls.
Служебные серверы Количество служебных серверов, на которых задано состояние.
Ошибки Указание того, произошел ли сбой состояния. Сбой может произойти по разным причинам. Например:
  • Требуемого файла нет, или он недоступен из-за разрешений файловой системы.
  • Сетевой ресурс или служба недоступны.
  • Возник конфликт зависимостей пакетов, из-за чего состояние нельзя применить.

Дополнительные сведения о причине сбоя состояния приведены в столбце Комментарии.

Успешно Указание общего процента успешно примененных состояний.
Изменено Указание общего процента служебных серверов, которые сообщили об изменениях для каждого состояния.
Изменения Указание того, привело ли последнее выполнение задания Highstate в изменениям.

Дополнительные сведения о внесенных изменениях приведены в столбце Комментарии.

Средняя продолжительность Средняя продолжительность выполнения состояния в миллисекундах (мс).
Среды Среда Salt, содержащая файл состояния, например base или dev.
JID Идентификационный номер задания для выполнения state.highstate.

Щелкните состояние на вкладке Состояния, чтобы посмотреть задания Highstate, выполненные в последний раз на каждом служебном сервере Salt.

Все предыдущие запуски задания Highstate для состояния страницы HTML по умолчанию в SaltStack Config

Для каждого состояния предоставляются указанные ниже сведения.

Термин Описание
Идентификатор служебного сервера Идентификатор служебного сервера, на котором задано состояние.
Статус Указание того, успешно ли выполнен запуск состояния.
Изменения Указание того, привело ли последнее выполнение задания Highstate в изменениям.

Дополнительные сведения о внесенных изменениях приведены в столбце Комментарии.

Среда Среда Salt, содержащая файл состояния, например base или dev.
Кластер / главный сервер Главный сервер Salt, связанный со служебным сервером.
Продолжительность Продолжительность запуска состояния в миллисекундах (мс).
Комментарий Сообщение с дополнительными сведениями об успешном или неудачном выполнении состояния.
JID Идентификационный номер задания для выполнения state.highstate.

На глобальном уровне также можно выполнить незапланированное задание Highstate.

  1. В Automation Config откройте рабочую область Highstate.
  2. Нажмите Запустить Highstate.
  3. В диалоговом окне выберите целевой объект, для которого необходимо выполнить задание Highstate.
  4. Нажмите Запустить Highstate.

Ход выполнения задания можно отслеживать на вкладке Действия рабочей области Highstate. После завершения процесса можно посмотреть обновленные отчеты и сведения о выполнении задания Highstate на глобальном, целевом уровнях или уровне служебного сервера.

Целевой уровень

Для просмотра возвращаемых результатов Highstate на целевом уровне откройте рабочую область Целевые объекты. Щелкните целевой объект, чтобы посмотреть все предыдущие запуски состояния для всех служебных серверов в целевой группе.

Предыдущие запуски Highstate для целевой группы CentOS в SaltStack Config

Целевой уровень содержит указанную ниже информацию о каждом служебном сервере в целевой группе.

Термин Описание
Идентификатор служебного сервера Идентификатор служебного сервера.
Запуски состояния Количество запусков состояния для служебного сервера.
Ошибки Указание того, произошел ли сбой состояния. Состояние может завершиться сбоем по разным причинам. Например:
  • Требуемого файла нет, или он недоступен из-за разрешений файловой системы.
  • Сетевой ресурс или служба недоступны.
  • Возник конфликт зависимостей пакетов, из-за чего состояние нельзя применить.

Дополнительные сведения о причине сбоя состояния приведены в столбце Комментарии.

Успешно Указание общего процента успешно примененных состояний.
Изменено Указание общего процента состояний, которые привели к изменениям.
Изменения Указание того, привело ли последнее выполнение задания Highstate в изменениям.

Дополнительные сведения о внесенных изменениях приведены в столбце Комментарии.

Продолжительность Продолжительность запуска состояния в миллисекундах (мс).
Среды Среда Salt, содержащая файл состояния, например base или dev.
JID Идентификационный номер задания для выполнения state.highstate.

Чтобы запустить на целевом уровне незапланированное задание Highstate, выполните указанные ниже действия.

  1. В Automation Config откройте рабочую область Целевые объекты.
  2. Выберите целевую группу, в которой необходимо выполнить задание Highstate.
  3. Перейдите на вкладку Highstate.
  4. Нажмите Запустить Highstate.
  5. В диалоговом окне подтвердите целевую группу, в которой необходимо выполнить задание Highstate.
  6. Нажмите Запустить Highstate.

Уровень служебного сервера

Чтобы просмотреть возвращаемые результаты Highstate на уровне служебного сервера, откройте вкладку Служебные серверы в рабочей области Highstate.

Возвращаемые результаты для всех служебных серверов в среде SaltStack Config

Уровень служебного сервера включает следующую информацию для всех служебных серверов.

Термин Описание
Идентификатор служебного сервера Идентификатор служебного сервера.
Запуски состояния Количество запусков состояния для служебного сервера.
Ошибки Указание того, произошел ли сбой состояния. Состояние может завершиться сбоем по нескольким причинам.
  • Требуемого файла нет, или он недоступен из-за разрешений файловой системы.
  • Сетевой ресурс или служба недоступны.
  • Возник конфликт зависимостей пакетов, из-за чего состояние нельзя применить.

Дополнительные сведения о причине сбоя состояния приведены в столбце Комментарии.

Успешно Указание общего процента успешно примененных состояний.
Изменено Указание общего процента состояний, которые привели к изменениям на служебном сервере.
Изменения Указание того, привело ли последнее выполнение задания Highstate в изменениям.

Щелкните идентификатор служебного сервера, чтобы посмотреть все предыдущие запуски состояния для служебного сервера.

Все запуски состояния для одного служебного сервера Salt в рабочей области Highstate

Предоставляются указанные ниже сведения.

Термин Описание
Успешно Указание того, успешно ли выполнен запуск состояния.
Изменения Указание того, привело ли последнее выполнение задания Highstate в изменениям.
Среда Среда Salt, содержащая файл состояния, например base или dev.
Файл SLS Файл, содержащий определение состояния, например centos-config.sls.
Состояние Определение идентификатора для состояния, например common-centos-packages.
Продолжительность Продолжительность запуска состояния в миллисекундах (мс).
Комментарий Сообщение с дополнительными сведениями об успешном или неудачном выполнении состояния.
JID Идентификационный номер задания для выполнения state.highstate.

Чтобы запустить на уровне служебного сервера незапланированное задание Highstate, выполните указанные ниже действия.

  1. В Automation Config откройте рабочую область Highstate.
  2. Выберите один или несколько служебных серверов, для которых необходимо выполнить задание Highstate.
  3. Нажмите Запустить Highstate.
  4. В диалоговом окне щелкните Запустить Highstate.

Просмотр действий Highstate

Вкладка Действия в рабочей области Highstate позволяет отслеживать статус запусков Highstate. На вкладке Действия отображаются различные события и операции, например запланированные или незапланированные задания.

Интерактивная диаграмма в рабочей области Highstate, на которой отображается количество служебных серверов с изменениями и без них за последние 30 дней

Интерактивная диаграмма на вкладке Действия содержит несколько отчетов, которые дают представление о предыдущих запусках Highstate в среде Automation Config. Каждый отчет можно сформировать на основе результатов от последних 24 часов и до 30 дней.

Отчет Описание
Служебный сервер: средняя продолжительность Отображение средней продолжительности запусков состояния по всем служебным серверам (в динамике).
Служебные серверы: с изменениями и без них Отображение количества служебных серверов, которые сообщили об изменениях, и служебных серверов, которые не сообщили об этом (в динамике).
Служебные серверы: успех или сбой Отображение количества служебных серверов, которые сообщили об успешно выполненных запусках состояния, и служебных серверов, сообщивших о сбое (в динамике).
Состояния: с изменениями и без изменений Отображение количества состояний, которые привели к изменениям, и состояний, которые не вызвали изменений (в динамике).
Состояния: успех или сбой Отображение количества успешных, а также завершившихся сбоем состояний.

Вкладка Действия разбита на три раздела, в которых задания сортируются по статусу.

  • Завершено: используется для мониторинга статуса завершенных заданий Highstate.
  • Выполняется: используется для мониторинга статуса заданий Highstate, выполняемых в данный момент.
  • Запланировано: используется для мониторинга статуса предстоящих заданий Highstate.

В таблице на вкладке Действия указаны следующие сведения: статус задания, источник, расписание (если доступно), задание, целевая группа и идентификатор связанного задания (JID). При необходимости столбцы можно отфильтровать.