Установка и настройка Salt Master

SaltStack, или Salt – это производительная система автоматизированного управления конфигурациями, которую можно внедрить в инфраструктуру.

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

Требования

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

  • Предварительно настроить свежий сервер Ubuntu 14.04.
  • Создать не-root пользователя с доступом к sudo (об этом можно прочесть здесь).

Установка Salt Master

Для начала запустите сессию не-root пользователя с доступом к sudo на сервере, который будет использоваться как Salt master.

Существует несколько способов установки Salt master. Для системы Ubuntu есть репозитории PPA, но они часто оказываются устаревшими. Лучше заранее выбрать конкретную версию программы, так как это позволяет планомерно обновлять систему и её пакеты, не полагаясь на репозитории.

В данном руководстве будет установлен сервер Salt v2015.8.0 (последняя доступная версия на момент написания статьи).

Примечание: Если вы хотите установить другую версию или применить другой метод установки, необходимо учитывать, что инструкции данного руководства могут не сработать.

Скрипт самозагрузки SaltStack позволяет быстро установить конкретную версию. Загрузите последнюю доступную версию скрипта:

cd ~
curl -L https://bootstrap.saltstack.com -o install_salt.sh

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

Чтобы установить сервер Salt master, запустите скрипт в оболочке sh. Флаг –P подтверждает установку пакетного менеджера pip. Также нужно добавить флаг –M, чтобы установить master демона. В конце команды нужно указать git v2015.8.0, чтобы скрипт извлёк из GitHub-репозитория SaltStack необходимый релиз и использовал его для установки:

sudo sh install_salt.sh -P -M git v2015.8.0

Скрипт установит все необходимые зависимости, загрузит указанную версию из репозитория git и установит демоны Salt master и minion, а также некоторые утилиты Salt.

Настройка Salt Master

Теперь нужно отредактировать конфигурационный файл Salt master:

sudo nano /etc/salt/master

Конфигурационный файл Salt довольно большой и хорошо закомментирован. В нём нужно раскомментировать и установить несколько опций.

Для начала найдите опцию file_recv. Эта опция позволяет серверам Salt minion передавать файлы серверу Salt master. Это очень полезная функция, которая, однако, связана с некоторым риском. Включите её на время выполнения данного руководства, а после её можно отключить:

file_recv: True

После этого нужно настроить словарь file_roots. Salt master предоставляет файловый сервер, хранящий файлы всей инфраструктуры. Он содержит файлы управления конфигурациями, а также все файлы minion.

Этот словарь YAML определяет root файлового сервера (/srv/salt). Также нужно указать, что он находится в окружении base (обязательное окружение по умолчанию для всех развертываний Salt):

file_roots:
base:
- /srv/salt

Примечание: Важно точно дублировать форматы. Salt использует файлы YAML, а YAML требует пристального внимания к пробелам и отступам для обеспечения правильной интерпретации кода. Как правило, каждый отступ равен двум пробелам.

Теперь нужно найти опцию pillar_roots. Эта система используется для хранения данных о конфигурациях, которые ограничены определенными нодами, что позволяет настраивать поведение серверов и защитить конфиденциальную информацию. Данная опция полностью повторяет формат file_roots.

pillar_roots:
base:
- /srv/pillar

Сохраните и закройте файл.

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

sudo mkdir -p /srv/{salt,pillar}

Настройка демона minion на сервере Salt Master

Теперь нужно настроить сервер Salt Master для поддержки и приема команд Salt. Для этого нужно настроить minion. Откройте файл:

sudo nano /etc/salt/minion

В нём нужно только изменить расположение master-сервера. Так как оба демона работают на одном хосте, можно установить адрес локального интерфейса:

master: 127.0.0.1

Сохраните и закройте файл.

Сервисы и ключи Salt

Теперь, когда Salt master и minion настроены, необходимо перезапустить сервисы, чтобы обновить конфигурации.

sudo restart salt-master
sudo restart salt-minion

Но прежде чем Salt master начнёт взаимодействовать с minion (даже на одном и том же сервере), он потребует ключ minion из соображений безопасности. Чтобы просмотреть все принятые и ожидающие ключи, наберите:

sudo salt-key --list all

Если все настройки выполнены верно, а серверы перезапустились, в разделе Unaccepted Keys появится ключ для сервера Salt master. В данном случае Salt master находится на машине sm:

Accepted Keys:
Denied Keys:
Unaccepted Keys:
sm
Rejected Keys:

Чтобы принять этот ключ, нужно добавить ID (в данном случае это sm) в команду salt-key с флагом –a:

sudo salt-key -a sm

После этого ключ переместится в Accepted Keys.

sudo salt-key --list all
Accepted Keys:
sm
Denied Keys:
Unaccepted Keys:
Rejected Keys:

Чтобы убедиться, что сервер Salt master теперь может отвечать на команды Salt, введите:

sudo salt '*' test.ping

Команда должна вернуть:

sm:
True

Если это так, то сервер Salt master – главный сервер структуры управления, который может работать как репозиторий – запущен и отвечает на команды.

Tags: , ,

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