Как установить и настроить Salt Master и Minion Servers на Ubuntu 14.04
SaltStack — это мощная, гибкая и высокопроизводительная система управления конфигурациями и удалённого выполнения операций. С помощью этого удобного инструмента можно централизованно управлять инфраструктурой, затрачивая при этом минимум усилий. Если вы хотите узнать о других терминах и инструментах, связанных с SaltStack, ознакомьтесь с этим руководством.
В этой статье будет сделан акцент на центральную службу Salt Master («мастер»), которая обеспечивает возможность управлять инфраструктурой. Здесь также будет показано как установить демон Salt Minion («ставленник», «приближённый», «миньон») на другие компьютеры, чтобы впоследствии управлять ими при помощи центральной службы Salt Master. Чтобы продемонстировать эти шаги нам понадобятся 2 сервера Ubuntu 14.04.
Подготовка
Демон Salt Minion можно установит на Ubuntu 14.04 несколькими способами. Ниже перечислены плюсы и минусы каждого способа:
• Ubuntu SaltStack PPA: Использует родной менеджер пакетов Ubuntu, который нужен для установки и обновления необходимого программного обеспечения. Это самый простой способ установки, но, пакеты могут быть устаревшими.
• Salt-Bootstrap: Это скрипт самонастройки, который пытается обеспечить более универсальный метод для установки и настройки Salt. Он может попытаться установить собственные программные средства, но если они недоступны, то он будет устанавливать их из PPA. Этот способ предоставляет доступ к версиям Salt, которые в данный момент находятся в разработке.
Ниже кратко описан способ установки из Ubuntu PPA. Также будут предоставлены инструкции как использовать второй способ: c помощью salt-bootstrap будут установлена как разрабатываемая, так и стабильная версии Salt Master.
В итоге вы сами должны решить какой метод вам нравится больше.
Установка стабильной версии с официального PPA
Установка из Ubuntu PPA является наиболее простым способом установки.
Чтобы начать работу, вы должны добавить репозиторий SaltStack PPA на сервере, который будете использовать в качестве master(мастера). Вы можете сделать это, набрав:
saltmaster$ sudo add-apt-repository ppa:saltstack/salt
После того, как вы подтвердили добавление PPA, он будет добавлен в систему. После того, как вы добавили нужный репозиторий, то нужно обязательно обновить список пакетов. Для этого вводим следующую команду:
saltmaster$ sudo apt-get update
После этого вы можете установить соответствующее программное обеспечение:
saltmaster$ sudo apt-get install salt-master salt-minion salt-ssh salt-cloud salt-doc
В приведенной выше команде, мы установили как Salt Master («мастер»), так и Salt Minion. Это позволит нам контролировать наш главный сервер с Salt. Мы также установили salt-ssh и salt-cloud , которые дадут нам больше возможностей в том, как мы соединяемся с ресурсами и управляем ими. Также мы получили пакет документации.
Итак, с установкой покончено и можно перейти к разделу начальной конфигурации мастера, чтобы получить новые услуги и начать работать.
Установка стабильной версии с помощью Salt-Bootstrap
Альтернатива использованию PPA — это установка стабильной версии с помощью salt-bootstrap. Данный сценарий доступен на официальном сайте SaltStack. Одна из причин, по которой стоит выбрать данный метод, является то, что он захватывает зависимости из менеджера пакетов pip. Это позволит вам получить более современные версии некоторых зависимостей Salt.
Чтобы приступить к работе, перейдите в свой домашний каталог или туда, где у вас есть права на запись.Мы можем использовать curl, чтобы загрузить скрипт salt-bootstrap. Мы будем следовать инструкциям, приведенным на GitHub странице salt-bootstrap:
saltmaster$ cd ~
saltmaster$ curl -L https://bootstrap.saltstack.com -o install_salt.sh
На данной стадии, посмотрите на сценарий, чтобы убедиться, что не сделали ничего лишнего:
saltmaster$ less ~/install_salt.sh
Скрипт начальной загрузки Salt поддерживается командой SaltStack, но вы всегда должны проверять содержимое внешних скриптов перед их запуском.
Когда вы убедитесь, что все проверили, запустите скрипт при помощи команды sh. Мы будем использовать флаг -P, чтобы скрипт мог использовать pip в качестве источника зависимостей. Без этого флага, установка, скорее всего, не удастся. Нам также необходимо включить флаг -M, чтобы установлен мастер-демон Salt. Все вспомогательные утилиты Salt будут автоматически включены.
Полная команда будет выглядеть так:
saltmaster$ sudo sh install_salt.sh -P -M
Установка разрабатываемой версии с помощью Salt-Bootstrap
Мы можем также использовать скрипт начальной загрузки Salt, чтобы установить разрабатываемую версию Salt при помощи Git. Это нужно вам, если вы хотите получить доступ к новейшим функциям и большему количеству исправленных багов, которые могут быть не доступны в PPA.
Сценарий нужен такой же как скрипт начальной загрузки Salt, который мы использовали выше. Только параметры, которые мы используем будет отличаться. Если у вас нет сценария, загрузите его в свой домашний каталог:
saltmaster$ cd ~
saltmaster$ curl -L https://bootstrap.saltstack.com -o install_salt.sh
Опять же, взгляните на сценарий, чтобы убедиться, что все в порядке с операциями, которые он будет выполнять:
saltmaster$ less ~/install_salt.sh
Полная команда:
saltmaster$ sudo sh install_salt.sh -P -M git develop
Первоначальная конфигурация Master
Далее нам нужно настроить мастер Salt.
Создание структуры каталогов Salt
Во-первых, мы создадим структуру каталогов для управления конфигурацией, где мастер будет искать различные файлы. По умолчанию, основным каталогом будет /srv. Также нужно создать каталоги /srv/salt и /srv/pillar:
saltmaster$ sudo nano /etc/salt/master
Первое что мы сделаем — это установим словарь file_roots. Он нужен для того, чтобы Salt знала где искать инструкции по управлению конфигурацией. База определяет среды по умолчанию. Каталоги, которые мы создали ранее будут использоваться именно для этой цели. Каталог /srv/salt будет использоваться для получения инструкций администратора, а каталог /srv/formulas для расфасованных конфигураций, загружаемых из внешних источников:
/etc/salt/master
file_roots:
base:
— /srv/salt
— /srv/formulas
Далее, мы создадим корневой каталог для основной конфигурации Salt:
/etc/salt/master
pillar_roots:
base:
— /srv/pillar
Это все что нам необходимо настроить в данный момент. Сохраните и закройте файл, когда вы закончите.
Изменение конфигурации Salt Minion
Мы также установили демон Salt Minion, поэтому должны сделать его частью нашей инфраструктуры. Откройте конфигурацию Salt minion привилегиями Sudo:
saltmaster$sudo nano /etc/salt/minion
Единственное изменение, которое нам нужно сделать, это указать мастеру, что именно этот minion должен подключиться. В этом случае minion должен подключиться к главному процессу, исполняемому на той же машине. Установите мастер-ключ, 127.0.0.1 для того, чтобы minion смог правильно подключиться:
/etc/salt/minion
master: 127.0.0.1
Сохраните и закройте файл, когда вы закончите.
Перезапустите процессы
Теперь нам нужно перезапустить как Salt Master, так и minion , чтобы использовать наши новые конфигурации:
saltmaster$ sudo restart salt-master
saltmaster$ sudo restart salt-minion
Получить ключ Minion
После перезагрузки, демон Salt Minion автоматически связался с мастером Salt и его учетными данными. Как администратор, вы должны проверить и принять ключ minion, чтобы разрешить обмен данными.
Начнем с перечисления всех ключей, которые для мастер Salt имеют знание:
saltmaster$ sudo salt-key —list all
Вы должны увидеть что-то вроде этого:
Output
Accepted Keys:
Denied Keys:
Unaccepted Keys:
saltmaster
Rejected Keys:
Как вы видите, minion Salt направила свой ключ к мастеру, но он еще не был принят. В целях безопасности, прежде чем принять ключ, нужно запускать две команды.
Нам нужно убедиться, что все идет по плану:
saltmaster$ sudo salt-call key.finger —local
Output
local:
24:c8:77:1d:ed:10:d7:b0:3e:bc:bc:ed:41:e1:5a:d1
Подставьте ID minion сюда:
saltmaster$ sudo salt-key -f saltmaster
Output
Unaccepted Keys:
saltmaster: 24:c8:77:1d:ed:10:d7:b0:3e:bc:bc:ed:41:e1:5a:d1
После того, как вы убедитесь, что эти значения одинаковы, вы можете принять ключ, набрав:
saltmaster$ sudo salt-key -f saltmaster
После принятия ключа, вы можете увидеть, что ключ был перемещен в раздел «Принятые ключи»:
saltmaster$ sudo salt-key —list all
Output
Accepted Keys:
saltmaster
Denied Keys:
Unaccepted Keys:
Rejected Keys:
Теперь вы можете проверить, что Salt master и minion процессы «общаются»:
saltmaster$ sudo salt ‘*’ test.ping
Вы должны получить сообщение, в котором указано, что проверка прошла успешно:
Output
saltmaster:
True
Установка отдельного Minion:
Теперь, когда у нас есть мастер Salt и сервер работает нормально, мы можем продемонстрировать, как подключить новый сервер под управлением Salt. Когда вы будете готовы, войдите в свой второй сервер с привилегиями SUDO.
Установка стабильного Master с официального PPA
Если вы установили главный сервер Salt из SaltStack PPA, то вы можете добавить один и тот же PPA на сервере minion Ubuntu:
saltmaster$ sudo add-apt-repository ppa:saltstack/salt
На этот раз, нам нужно только установить исполняемый файл minion Salt. Обновить локальный индекс пакетов после добавления PPA и установить программное обеспечение, набрав:
saltmaster$ sudo apt-get update
saltmaster$ sudo apt-get install salt-minion
Настройка Minion
Теперь, когда мы установили minion, то мы можем идти дальше и настроить его для общения с мастером.
Получить Salt Master Public Key Fingerprint
Прежде чем мы начнем, мы должны получить ключ мастера Salt. Мы опишем этот шаг для повышения уровня безопасности.
На главном сервере Salt, введите:
saltmaster$ sudo salt-key -F master
Вывод должен выглядеть следующим образом:
Output
Local Keys:
master.pem: 12:db:25:3d:7f:00:a3:ed:20:55:94:ca:18:f8:67:97
master.pub: 7b:97:23:4b:a4:6d:16:31:2d:c9:e3:81:e2:d5:32:92
Accepted Keys:
saltmaster: 24:c8:77:1d:ed:10:d7:b0:3e:bc:bc:ed:41:e1:5a:d1
Изменение конфигурации Minion
Откройте конфигурационный файл minion с привилегиями Sudo:
saltmaster$ sudo nano /etc/salt/minion
Нам необходимо указать место, где мастер может быть найден. Это может быть либо домен DNS, либо IP-адрес:
/etc/salt/minion
master: ip_of_salt_master
Затем установите параметр master_finger к значению отпечатка, скопированного из мастера минуту назад:
/etc/salt/minion
master: master_finger: ‘7b:97:23:4b:a4:6d:16:31:2d:c9:e3:81:e2:d5:32:92’
Сохраните и закройте файл, когда закончите.
Теперь перезапустите демон minion Salt для реализации новых изменений в конфигурации:
saltmaster$ sudo restart salt-minion
Принятие ключа Minion на Master
Во-первых, убедитесь, что у нас есть не принятый ключ на Master:
saltmaster$ sudo salt-key —list all
Вы должны увидеть новый ключ в разделе «непринятые ключи», который связан с вашим новым minion:
Output
Accepted Keys:
saltmaster
Denied Keys:
Unaccepted Keys:
saltminion
Rejected Keys:
Проверьте отпечаток нового ключа. Измените выделенную ниже часть:
saltmaster$ sudo salt-key -f saltminion
Вывод должен быть примерно таким:
Output
Unaccepted Keys:
saltminion: 32:2a:7c:9a:f2:0c:d1:db:84:df:d3:82:00:d5:8f:be
Если это так, то вы можете смело принимать ключ, набрав:
saltmaster$ sudo salt-key -a saltminion
Ключ должен быть добавлен в раздел «Принятые ключи»:
saltmaster$ sudo salt-key —list all
Output
Accepted Keys:
saltmaster
saltminion
Denied Keys:
Unaccepted Keys:
Rejected Keys:
Проверьте, что вы можете послать команды к новому minion, введите команду:
saltmaster$ sudo salt ‘*’ test.ping
Вы должны получить обратно ответы от обоих демонов minion, которые вы настроили:
Output
saltminion:
True
saltmaster:
True
Заключение
В итоге у вас должен получиться мастер-сервер Salt, настроенный для управления инфраструктурой. Также был описан процесс создания нового сервера minion. В данной статье были рассмотрены основные навыки, необходимые для создания новой инфраструктуры управления.
http://www.linuxspace.org/archives/14158
|