Создание формул Salt

Salt – это открытый инструмент для управления конфигурацией и удаленного исполнения команд. Инструмент Salt достаточно простой в установке, масштабируемый (позволяет управлять десятками тысяч серверов) и довольно быстрый.

Примечание: Также рекомендуется ознакомиться с SaltStack и предыдущим руководством данной серии.

Весь код и все функции Salt распространяются согласно лицензии Apache 2.0 и могут быть загружены по этой ссылке при помощи менеджера пакетов вашей системы.

Данное руководство покажет, как создать формулу Salt, которая обеспечит сервер следующими программами:

  • Vim
  • Apache
  • PHP
  • git

Требования

Для выполнения руководства нужно:

Имейте в виду: в данном руководстве сервер словно называется minion01. Замените это условное имя именем своего сервера.

Создание формулы Salt

В предыдущем руководстве было показано, как использовать простые команды Salt для установки ПО (на примере Nginx). Так очень удобно выполнять узкоспециализированные команды, но постоянно работать с настройками и инфраструктурой таким образом не рекомендуется. Создавая так называемые формулы Salt (Salt Formulas), можно в точности многократно воспроизводить любую конфигурацию. Кроме того, наборы формул в результате можно рассматривать как документацию сервера.

Формулы Salt – это простые файлы yaml, которые по умолчанию хранятся на Salt Master в /srv/salt/.

Создайте формулу для установки Vim:

vi /srv/salt/vim.sls

Добавьте в файл следующий код:

vim:
pkg:
- installed

Рассмотрим его подробнее:

  • Первая строка кода называется ID Declaration и предназначена для объявления идентификатора (имени) пакета; в данном случае это vim. Имя пакета, используемое в этой строке, должно совпадать с именем пакета, используемым менеджером пакетов системы; к примеру, в Ubuntu – vim, в CentOS – vim-core. На самом деле, в строке ID Declaration можно поместить абсолютно любой текст, так как имя пакета можно указать в следующей строке.
  • Далее следует строка State Declaration, которая задаёт используемый режим Salt; в данном случае – pkg. Список доступных режимов можно найти по этой ссылке.
  • Следующая строка, Function Declaration, задаёт имя функции внутри выполняемого модуля; в данном примере это installed. Режимы в Salt идемпотентны, то есть их можно выполнить неограниченное количество раз, но на сервере ничего не изменится, если он уж доведён до требуемого состояния.

Теперь попробуйте применить полученную формулу к серверу:

salt 'minion01' state.sls vim

Чтобы при этом другой текстовый редактор (например, nano) был удалён, файл vim.sls должен выглядеть так:

vim:
pkg:
- installed
nano:
pkg:
- removed

Как видите, всё работает согласно повторяющемуся шаблону.

Теперь попробуйте одновременно установить Apache и PHP. Создайте файл webserver.sls:

vi /srv/salt/webserver.sls

В этот файл вставьте код:

webserver_stuff:
pkg:
- installed
- pkgs:
- apache2
- php5
- php5-mysql

Обратите внимание на аргумент –pkgs; все элементы, перечисленные после этого аргумента, будут одновременно установлены в систему. Это позволяет одновременно устанавливать огромное количество пакетов.

Примените эту формулу:

salt 'minion01' state.sls webserver

Итак, теперь попробуйте установить git. Формула очевидна:

vi /srv/salt/git.sls
git:
pkg:
- installed

Примените эту формулу:

salt 'minion01' state.sls git

Чтобы запустить все полученные формулы одновременно, используйте:

salt 'minion01' state.sls vim,webserver,git

Данные highstate

Структура данных highstate позволяет Salt динамически определять формулы, которые должны быть применены к определённому minion серверу. Чтобы запустить этот режим, используйте:

salt 'minion01' state.highstate

Эта команда загрузит с Salt Master и выполнит на minion файл top. По умолчанию он находится в /srv/salt/top.sls. Базовый файл имеет такой вид:

base:
'*':
- vim
'minion*':
- git
- webserver
'minion02':
- mongodb

Этот файл top.sls настраивает окружение base, которое является стандартным. Когда minion работает с highstate, он запрашивает файл top.sls у master. Символ звёздочки запускает все перечисленные ниже формулы на всех minion (в данном примере только формулу для vim). Строки minion* и minion02 запустят нижеперечисленные формулы на заданных minion.

Примечание: Больше полезных инструкций по работе с minion можно найти здесь.

Заключение

К сожалению, данное руководство охватывает только основы работы с Salt и создание базовых формул.

Больше информации о Salt можно найти здесь.

Также читайте расширенную документацию Salt.

Разработка Salt – по этой ссылке.

Tags: ,

1 комментарий

Добавить комментарий