Файлы состояния и данные хранилища pillar можно создать или отправить в рабочие области файлового сервера Automation Config и хранилища pillar. Если файловые серверы использовать не нужно, Automation Config также поддерживает подключение к внешнему репозиторию (например, к репозиторию Git), в котором можно сохранять файлы состояния и данные хранилища pillar.
Что такое файлы состояния?
Вместо того чтобы вручную по одному настраивать каждый узел или приложение, можно использовать систему управления состоянием Automation Config, позволяющую создавать файлы состояния, которые можно применять одновременно ко множеству узлов. Эти файлы состояния могут включать набор инструкций для Automation Config, в которых указывается, какие операции должны выполняться на узле и в каком порядке. В них также может быть указано, какие файлы или параметры конфигурации должны быть применены.
После записи или изменения файлов состояния их можно автоматически запускать и применять сразу ко множеству узлов. Выбирать узлы можно на основе встроенных свойств каждого узла (например, операционной системы) или на основе задаваемых вами настраиваемых меток. Дополнительные сведения см. в Как создать целевые объекты?.
Система управления состоянием обеспечивает надлежащую и максимально эффективную настройку каждого узла. Если имеет место дрейф конфигурации, Automation Config может вернуть узлы и приложения обратно в состояние конфигурации, соответствующее нормативным требованиям. Если конфигурацию необходимо изменить, Automation 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
- Устанавливает Apache (httpd) на служебном сервере.
- Запускает службу Apache.
- Развертывает образец HTML-страницы индексов, которая размещается на служебном сервере.
Что такое данные хранилища pillar?
- Хранилище pillar может ограничить доступ пользователей к личным, конфиденциальным данным, например к паролям и параметрам конфигурации. Например, с помощью хранилища pillar можно разрешить пользователю выполнить задание, для которого требуется проверка подлинности во внешней службе, без доступа к самим учетным данным для проверки подлинности. В этом случае пользователю предоставляется доступ к конкретному заданию и целевому объекту, но не к хранилищу pillar, в котором содержатся конфиденциальные данные для проверки подлинности.
- Хранилище pillar может отправлять данные, которые изменяются в зависимости от контекста или служебного сервера, запрашивающего данные. Например, можно назначить разные пароли различным служебным серверам и хранить все пароли в одном файле pillar. Затем можно создать файл состояния, в котором будет указано, что служебный сервер должен найти в нем свой уникальный пароль без необходимости создания нескольких файлов или хранения паролей в нескольких местах.
Данные в хранилище Pillar Automation Config шифруются с помощью ключа шифрования RaaS, связанного с конкретным экземпляром Automation Config (например, «/etc/raas/pki/.raas.key»). Когда данные Pillar определяются в пользовательском интерфейсе Automation Config, они шифруются с помощью этого ключа и хранятся в базе данных PostgreSQL. Этот ключ также используется при расшифровке данных для отображения в пользовательском интерфейсе Automation Config.
Пример файла pillar
Файлы Pillar обычно записываются в формате YAML и Jinga, но с Salt также совместимы и другие форматы, например, JSON. Данные хранилища pillar хранятся в виде словаря и используют пары «ключ-значение» для поиска значений. Типичный файл Pillar может иметь примерно следующий вид.
pillar1: value pillar2: - value - value pillar3: sub_key: - value - value
В этом примере показаны три метода форматирования данных хранилища pillar. Выбираемый синтаксис будет зависеть от потребностей и типа хранимой информации.
Перед началом работы
Так как Automation Config работает на базе Salt, это упрощает получение базовых практических знаний о Salt и принципах его работы. В следующей таблице перечислены некоторые полезные ресурсы для получения дополнительных сведений.
Для получения сведений о... | См. раздел... |
---|---|
Основы работы с Salt |
|
Состояния Salt |
|
Данные pillar |
|
Модули выполнения и модули состояния Salt |
|
После определения данных хранилища Pillar можно назначить данные Pillar системам служебных серверов, нажав Обновить целевые объекты, выбрав целевую группу и нажав кнопку Сохранить.
Когда данные хранилища Pillar назначаются определенной целевой системе и включаются в файлы состояния, они обрабатываются главным сервером для каждой системы служебных серверов и шифруются с помощью отдельного ключа AES для каждого служебного сервера. Этот ключ позволяет передавать данные Pillar в целевую систему во время работы с файлами состояния или оркестрации.
Добавление файлов состояния на файловый сервер
Для добавления файла состояния на файловый сервер, чтобы он мог использоваться в заданиях, выполните следующее.
- Найдите модули выполнения или модули состояния Salt, которые могут помочь получить нужный результат. Определив нужный модуль Salt, ознакомьтесь с его документацией. Особое внимание уделите параметрам модуля и прочим требованиям.
- (Необязательно.) Рекомендуется создать черновик файла состояния в каком-либо редакторе кода и, используя анализатор кода, убедиться, что в файле состояния используется корректный синтаксис.
- В пользовательском интерфейсе Automation Config в боковом меню выберите Конфигурация > Файловый сервер, чтобы открыть рабочую область файлового сервера.
- При первом открытии рабочей области файлового сервера отобразится каталог файлов и пустой новый файл. С помощью этого пустого файла создайте новый файл состояния или скопируйте файл состояния из редактора кода.
- Щелкните меню Saltenv и выберите среду, в которой нужно хранить файл состояния. Если вы не знаете, какую инфраструктуру следует выбрать, используйте base.
- В поле Путь введите путь к файлу и имя файла с расширением
.sls
. Например,/my-directory/my-state-file.sls
. - В самом файле напишите файл состояния или скопируйте его. Например:
- Сохраните файл состояния и убедитесь, что новый файл отображается в каталоге файлового сервера.
Добавление данных хранилища pillar на главный сервер Salt
Несмотря на то, что для добавления данных хранилища pillar на главный сервер Salt можно использовать рабочую область Automation Config Pillar, возможно, будет проще добавлять данные pillar непосредственно на главный сервер Salt. Для добавления данных хранилища pillar, чтобы на них можно было ссылаться в файлах состояния или назначать их целевым объектам, можно использовать два метода.
- Подключитесь по протоколу SSH к главному серверу Salt и добавьте файл pillar в каталог главного сервера, используя стандартные процедуры Salt для добавления файлов на главный сервер. Дополнительные сведения см. в разделах Хранилище Pillar и Обзор хранилища pillar.
- Создайте задание в пользовательском интерфейсе Automation Config, который добавляет данные хранилища pillar на главный сервер Salt с помощью команды
salt-run
, которая использует функцию runner в системе Salt. Дополнительные сведения см. в Как создать задания?.
Дальнейшие действия
После создания файлов состояния и данных хранилища pillar, к которым могут получить доступ служебные серверы, на эти файлы можно ссылаться в заданиях, которые вы создаете в Automation Config. Дополнительные сведения см. в Как создать задания?.