Файлы состояния и данные хранилища pillar можно создать или отправить в рабочие области файлового сервера SaltStack Config и хранилища pillar. Если файловые серверы использовать не нужно, SaltStack Config также поддерживает подключение к внешнему репозиторию (например, к репозиторию Git), в котором можно сохранять файлы состояния и данные хранилища pillar.

Что такое файлы состояния?

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

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

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

Пример файла состояния

Файлы состояния обычно записываются в формате YAML и Jinga, но с Salt также совместимы и другие форматы, например, JSON. Типичный файл состояния может иметь примерно следующий вид.

install_apache:
  pkg.installed:
    - name: httpd
    
ensure_service_running:
  service.running:
    - name: httpd
    - watch:
      - pkg: install_apache
      
default_html_page:
  file.managed:
    - name: /var/www/html/index.html
    - source: salt://apache/index.html
Этот файл состояния включает три шага, на которых запускаются три разных модуля выполнения Salt. Когда этот файл состояния применяется к служебному серверу, SaltStack Config выполняет следующие действия.
  • Устанавливает Apache (httpd) на служебном сервере.
  • Запускает службу Apache.
  • Развертывает образец HTML-страницы индексов, которая размещается на служебном сервере.

Что такое данные хранилища pillar?

Образец файла Pillar в рабочей области файлового сервера

Примечание: В соответствии с передовыми практиками, рекомендуется сохранять данные хранилища pillar для защиты конфиденциальности.
Модули pillar — это структуры данных, которые хранятся на главном сервере Salt и передаются на один или несколько служебных серверов, имеющих право доступа к этим данным. Данные pillar могут использоваться в двух базовых ситуациях.
  • Хранилище pillar может ограничить доступ пользователей к личным, конфиденциальным данным, например к паролям и параметрам конфигурации. Например, с помощью хранилища pillar можно разрешить пользователю выполнить задание, для которого требуется проверка подлинности во внешней службе, без доступа к самим учетным данным для проверки подлинности. В этом случае пользователю предоставляется доступ к конкретному заданию и целевому объекту, но не к хранилищу pillar, в котором содержатся конфиденциальные данные для проверки подлинности.
  • Хранилище pillar может отправлять данные, которые изменяются в зависимости от контекста или служебного сервера, запрашивающего данные. Например, можно назначить разные пароли различным служебным серверам и хранить все пароли в одном файле pillar. Затем можно создать файл состояния, в котором будет указано, что служебный сервер должен найти в нем свой уникальный пароль без необходимости создания нескольких файлов или хранения паролей в нескольких местах.

Данные в хранилище Pillar SaltStack Config шифруются с помощью ключа шифрования RaaS, связанного с конкретным экземпляром SaltStack Config (например, «/etc/raas/pki/.raas.key»). Когда данные Pillar определяются в пользовательском интерфейсе SaltStack Config, они шифруются с помощью этого ключа и хранятся в базе данных PostgreSQL. Этот ключ также используется при расшифровке данных для отображения в пользовательском интерфейсе SaltStack Config.

Пример файла pillar

Файлы Pillar обычно записываются в формате YAML и Jinga, но с Salt также совместимы и другие форматы, например, JSON. Данные хранилища pillar хранятся в виде словаря и используют пары «ключ-значение» для поиска значений. Типичный файл Pillar может иметь примерно следующий вид.

 pillar1: value
 pillar2:
   - value
   - value
 pillar3:
   sub_key:
     - value
     - value

В этом примере показаны три метода форматирования данных хранилища pillar. Выбираемый синтаксис будет зависеть от потребностей и типа хранимой информации.

Перед началом работы

Так как SaltStack Config работает на базе Salt, это упрощает получение базовых практических знаний о Salt и принципах его работы. В следующей таблице перечислены некоторые полезные ресурсы для получения дополнительных сведений.

Для получения сведений о... См. раздел...

Основы работы с Salt

Состояния Salt

Данные pillar

Модули выполнения и модули состояния Salt

  • Указатель модулей Salt, где содержится список всех модулей Salt
  • Дополнительные сведения о выборе модуля для решения конкретных потребностей или особенностях использования конкретного модуля можно запросить в службе поддержки сообщества в рабочей области SaltStack Community Slack.

После определения данных хранилища Pillar можно назначить данные Pillar системам служебных серверов, нажав Обновить целевые объекты, выбрав целевую группу и нажав кнопку Сохранить.

Добавление данных Pillar к целевым объектам в SaltStack Config

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

Добавление файлов состояния на файловый сервер

Для добавления файла состояния на файловый сервер, чтобы он мог использоваться в заданиях, выполните следующее.

  1. Найдите модули выполнения или модули состояния Salt, которые могут помочь получить нужный результат. Определив нужный модуль Salt, ознакомьтесь с его документацией. Особое внимание уделите параметрам модуля и прочим требованиям.
  2. (Необязательно.) Рекомендуется создать черновик файла состояния в каком-либо редакторе кода и, используя анализатор кода, убедиться, что в файле состояния используется корректный синтаксис.
  3. В пользовательском интерфейсе SaltStack Config в боковом меню выберите Конфигурация > Файловый сервер, чтобы открыть рабочую область файлового сервера.
  4. При первом открытии рабочей области файлового сервера отобразится каталог файлов и пустой новый файл. С помощью этого пустого файла создайте новый файл состояния или скопируйте файл состояния из редактора кода.Пустой файл состояния в рабочей области файлового сервера в SaltStack Config
  5. Щелкните меню Saltenv и выберите среду, в которой нужно хранить файл состояния. Если вы не знаете, какую инфраструктуру следует выбрать, используйте base.
  6. В поле Путь введите путь к файлу и имя файла с расширением .sls. Например, /my-directory/my-state-file.sls.
  7. В самом файле напишите файл состояния или скопируйте его. Например: код в файле состояния в рабочей области файлового сервера
  8. Сохраните файл состояния и убедитесь, что новый файл отображается в каталоге файлового сервера.

Добавление данных хранилища pillar на главный сервер Salt

Несмотря на то, что для добавления данных хранилища pillar на главный сервер Salt можно использовать рабочую область SaltStack Config Pillar, возможно, будет проще добавлять данные pillar непосредственно на главный сервер Salt. Для добавления данных хранилища pillar, чтобы на них можно было ссылаться в файлах состояния или назначать их целевым объектам, можно использовать два метода.

  • Подключитесь по протоколу SSH к главному серверу Salt и добавьте файл pillar в каталог главного сервера, используя стандартные процедуры Salt для добавления файлов на главный сервер. Дополнительные сведения см. в разделах Хранилище Pillar и Обзор хранилища pillar.
  • Создайте задание в пользовательском интерфейсе SaltStack Config, который добавляет данные хранилища pillar на главный сервер Salt с помощью команды salt-run, которая использует функцию runner в системе Salt. Дополнительные сведения см. в Как создать задания?.

Дальнейшие действия

После создания файлов состояния и данных хранилища pillar, к которым могут получить доступ служебные серверы, на эти файлы можно ссылаться в заданиях, которые вы создаете в SaltStack Config. Дополнительные сведения см. в Как создать задания?.