Как установить и настроить серверы Salt Master и Minion в Ubuntu 14.04

Вступление

SaltStack - это мощная, гибкая, высокопроизводительная система управления конфигурациями и удаленного выполнения. Он может использоваться для управления вашей инфраструктурой из централизованного местоположения, сводя к минимуму количество шагов по техническому обслуживанию. Чтобы узнать больше о некоторых терминологиях и инструментах, связанных с SaltStack, ознакомьтесь сthis guide.

В этой статье мы сосредоточимся на настройке главного сервера Salt для управления вашей инфраструктурой. Мы также продемонстрируем, как установить демон Salt minion на другие компьютеры, чтобы управлять им с помощью Salt. Для демонстрации этих шагов мы будем использовать два сервера Ubuntu 14.04.

Предпосылки

Для начала у вас должно быть как минимум два экземпляра сервера Ubuntu 14.04. Для них должен быть настроен пользователь без полномочий root с привилегиямиsudo. Вы можете узнать, как создавать и настраивать этих пользователей, следуя нашимUbuntu 14.04 initial server setup guide.

Когда вы будете готовы приступить к работе, войдите на сервер, который хотите использовать в качестве мастера Salt, с вашим пользователемsudo. Сначала мы настроим эту машину.

Установите Master Daemon

Мастер-демон Salt может быть установлен несколькими способами в Ubuntu 14.04. Ниже приводится краткое изложение преимуществ и недостатков каждого метода:

  • Ubuntu SaltStack PPA: использует собственные инструменты управления пакетами Ubuntu для установки и обновления необходимого программного обеспечения. Это самый простой способ установки, но, как и на момент написания этой статьи, пакеты могут быть значительно устаревшими.

  • Salt-Bootstrap: этот сценарий начальной загрузки пытается предоставить более универсальный метод установки и настройки Salt. Он может пытаться использовать доступные доступные программные средства, а это значит, что он все еще может попытаться установить его из описанного выше PPA. Он также обеспечивает легкий доступ к разрабатываемым версиям Salt.

Ниже мы расскажем, как установить, используя метод Ubuntu PPA. Мы также предоставим инструкции по использованию сценарияsalt-bootstrap для установки как стабильной, так и разрабатываемой версии Salt master.

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

Установите стабильную версию с официального PPA

Установка из Ubuntu PPA - самый простой способ установки.

Чтобы начать, вам нужно добавить SaltStack PPA на сервер, который вы будете использовать в качестве основного. Вы можете сделать это, набрав:

sudo add-apt-repository ppa:saltstack/salt

Как только вы подтвердите добавление PPA, оно будет добавлено в вашу систему. Чтобы проиндексировать новые пакеты, доступные внутри, вам необходимо обновить локальный индекс пакетов. После этого вы можете установить соответствующее программное обеспечение:

sudo apt-get update
sudo apt-get install salt-master salt-minion salt-ssh salt-cloud salt-doc

В приведенной выше команде мы установили демона Salt master и minion. Это позволит нам также управлять нашим главным сервером с помощью Salt. Мы также установилиsalt-ssh иsalt-cloud, которые дают нам больше гибкости в том, как мы подключаемся к ресурсам и контролируем их. Мы также включили пакет документации.

К этому моменту вы закончили установку Salt master. Переходите кinitial master configuration section, чтобы начать работу с новыми службами.

Установите стабильную версию с помощью Salt-Bootstrap

Альтернативой прямому использованию PPA является установка стабильной версии с помощью сценарияsalt-bootstrap. Это доступно для загрузки с сайта SaltStack. Одна из причин, по которой вы можете использовать этот метод установки стабильной системы вместо описанного выше, заключается в том, что он получает некоторые из своих зависимостей из диспетчера пакетовpip. Это может дать вам более свежие версии некоторых из зависимостей Salt.

Для начала перейдите в свой домашний каталог или куда-нибудь еще, где у вас есть права на запись. Мы можем использоватьcurl для загрузки сценария начальной загрузки. Мы будем следовать инструкциям наsalt-bootstrap GitHub page и для ясности будем использовать выбранное ими имя вывода:

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

На этом этапе посмотрите на скрипт, чтобы убедиться, что он не делает ничего, что вы не одобряете:

less ~/install_salt.sh

Скриптsalt-bootstrap поддерживается командой SaltStack, но вы всегда должны проверять содержимое внешних скриптов перед их запуском.

Когда вы будете удовлетворены действиями, которые будут предприняты, запустите сценарий, передав егоsh. Мы будем использовать флаг-P, чтобы сценарий мог использоватьpip в качестве источника зависимости при необходимости. Без этого флага установка, скорее всего, не удастся. Нам также необходимо включить флаг-M, чтобы установить главный демон Salt. Все вспомогательные утилиты Salt будут автоматически включены.

Нам нужна полная команда:

sudo sh install_salt.sh -P -M

К этому моменту вы закончили установку Salt master. Переходите кinitial master configuration section, чтобы начать работу с новыми службами.

Установите версию для разработчиков с помощью Salt-Bootstrap

Мы также можем использовать сценарийsalt-bootstrap для установки разрабатываемой версии Salt с использованиемgit. Это может быть полезно для получения доступа к новым функциям и, что более важно, для получения доступа к более новым исправлениям ошибок, которые могут быть недоступны в версии программного обеспечения PPA.

Нужен тот же сценарийsalt-bootstrap, который мы использовали выше. Только варианты, которые мы используем, будут другими. Учитывая это, если у вас еще нет сценария, загрузите его в свой домашний каталог:

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

Опять же, посмотрите на скрипт, чтобы убедиться, что вы в порядке с операциями, которые он будет выполнять:

less ~/install_salt.sh

Когда вы будете удовлетворены, вы можете передать сценарийsh для его выполнения. Мы включим флаг-P, чтобы сообщить скрипту о необходимости получения зависимостей сpip. Флаг-M включен, чтобы указать, что мы хотим установить мастер Salt. Завершим командуgit develop, чтобы сообщить скрипту, что мы хотим использоватьSaltStack GitHub repo для установки самой последней разрабатываемой версии вместо Ubuntu PPA.

Нам нужна полная команда:

sudo sh install_salt.sh -P -M git develop

К этому моменту вы закончили установку Salt master. Далее мы настроим мастер для запуска и запуска новых сервисов.

Начальная основная конфигурация

Далее нам нужно настроить мастер соли.

Создайте структуры каталогов солей

Сначала мы создадим структуру каталогов управления конфигурацией, где мастер соли будет искать различные файлы. Все они по умолчанию находятся в каталоге/srv. Для начала нам нужны/srv/salt и/srv/pillar. Создайте их сейчас, набрав:

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

Модифицируйте настройку Salt Master

Далее мы настроим главный файл конфигурации Salt. Откройте файл с правамиsudo в текстовом редакторе:

sudo nano /etc/salt/master

Первое, что мы сделаем, это установим словарьfile_roots. Это в основном указывает места, где мастер соли будет искать инструкции по управлению конфигурацией. base указывает среду по умолчанию. Два из каталогов, которые мы создали ранее, будут использоваться для этой цели. /srv/salt будет использоваться для инструкций, созданных администратором, а/srv/formulas будет выделен для предварительно упакованных конфигураций, загруженных из внешних источников:

/etc/salt/master

file_roots:
  base:
    - /srv/salt
    - /srv/formulas

Note

[.note] # Важно точно воспроизвести указанные форматы. Соль использует конфигурационные файлы в стиле YAML. Это требует строгого внимания к интервалу и отступам, чтобы демон мог правильно интерпретировать значения.
#

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

/etc/salt/master

pillar_roots:
  base:
    - /srv/pillar

Это все, что нам нужно настроить для мастера на данный момент. Сохраните и закройте файл, когда вы закончите.

Измените конфигурацию Salt Minion

Мы также установили демон Salt minion на эту машину, чтобы мы могли поддерживать его в соответствии с остальными нашими политиками инфраструктуры. Откройте конфигурацию миньона Salt с правамиsudo следующим образом:

sudo nano /etc/salt/minion

Единственное изменение, которое нам нужно сделать, это указать мастера, к которому должен подключиться этот миньон. В этом случае миньон должен подключиться к главному процессу, работающему на той же машине. Установите ключmaster равным локальному адресу обратной петли127.0.0.1, чтобы миньон мог правильно подключиться:

/etc/salt/minion

master: 127.0.0.1

Сохраните и закройте файл, когда вы закончите.

Перезапустите процессы

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

sudo restart salt-master
sudo restart salt-minion

Оба демона будут перезапущены с учетом изменений конфигурации, которые мы обрисовали в общих чертах.

Примите Ключ Миньона

После перезагрузки демон миньонов Соли автоматически связался с Мастером Соли со своими учетными данными. Как администратор, вам просто нужно проверить и принять ключ миньона, чтобы разрешить общение.

Начните с перечисления всех ключей, о которых мастер соли знает:

sudo salt-key --list all

Вы должны увидеть что-то вроде этого. saltmaster ниже должны соответствовать ID миньона Salt в вашей системе. Обычно это имя хоста вашего сервера:

OutputAccepted Keys:
Denied Keys:
Unaccepted Keys:
saltmaster
Rejected Keys:

Как видите, наш Соленый миньон отправил свой ключ хозяину, но он еще не был принят. В целях безопасности перед принятием ключа мы запустим две команды.

Нам нужно убедиться, что результат этого (который говорит нам отпечаток ключа, сгенерированного Солиным миньоном):

sudo salt-call key.finger --local
Outputlocal:
    24:c8:77:1d:ed:10:d7:b0:3e:bc:bc:ed:41:e1:5a:d1

Соответствует найденному здесь отпечатку пальца (отпечаток ключа, который мастер соли должен попросить принять). Подставьте идентификатор миньона здесь:

sudo salt-key -f saltmaster
OutputUnaccepted Keys:
saltmaster: 24:c8:77:1d:ed:10:d7:b0:3e:bc:bc:ed:41:e1:5a:d1

Убедившись, что эти значения совпадают, вы можете принять ключ, набрав:

sudo salt-key -a saltmaster

После принятия ключа вы увидите, что ключ был перемещен в раздел «Принятые ключи»:

sudo salt-key --list all
OutputAccepted Keys:
saltmaster
Denied Keys:
Unaccepted Keys:
Rejected Keys:

Теперь вы можете проверить, что процессы Salt master и minion правильно взаимодействуют, набрав:

sudo salt '*' test.ping

Вы должны получить обратно сообщение о том, что проверка работоспособности прошла успешно:

Outputsaltmaster:
    True

Ваш главный сервер Salt настроен. Мы можем перейти к демонстрации того, как настроить дополнительный сервер Salt minion.

Установите отдельный миньон

Теперь, когда наш главный сервер Salt запущен и работает без сбоев, мы можем продемонстрировать, как передать новый сервер под контроль Salt в качестве миньона.

Опять же, у нас есть несколько способов установить необходимое программное обеспечение, ноyou should match the method used for the master server. Это гарантирует, что у вас нет несоответствия версий между Salt master и minion. Миньоны соли, которые более современны, чем их главный сервер, могут демонстрировать непредсказуемое поведение.

Когда вы будете готовы, войдите на второй сервер под своим пользователемsudo.

Установите стабильного мастера из официального PPA

Если вы установили свой главный сервер Salt из SaltStack PPA, вы можете добавить тот же PPA на свой сервер Ubuntu minion:

sudo add-apt-repository ppa:saltstack/salt

На этот раз нам нужно только установить исполняемый файлsalt-minion. Обновите локальный индекс пакетов после добавления PPA и установите программное обеспечение, введя:

sudo apt-get update
sudo apt-get install salt-minion

Ваш Соленый миньон теперь должен быть установлен. Перейдите к разделуconfiguring your minion.

Установите стабильную версию с помощью Salt-Bootstrap

Если вы установили стабильную версию с помощьюsalt-bootstrap, вы можете загрузить тот же сценарий на свою машину миньона:

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

Мы назовем сценарий почти так же, как мы это делали для мастера соли. Единственное отличие состоит в том, что мы опускаем флаг-M, поскольку нам не нужно устанавливать основные инструменты и демоны:

sudo sh install_salt.sh -P

Ваш Соленый миньон теперь должен быть установлен. Перейдите к разделуconfiguring your minion.

Установите версию для разработчиков с помощью Salt-Bootstrap

Если вы установили текущую разрабатываемую версию на Salt master с помощьюsalt-bootstrap, вы можете установить сопутствующий процесс миньона, используя тот же сценарий. Загрузите его своему миньону, набрав:

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

Команда, которая нам нужна для установки миньона, почти такая же, как та, которую мы использовали на мастере. Единственное отличие состоит в том, что мы оставляем флаг-M, чтобы указать, что нам не нужны основные инструменты и демон Salt:

sudo sh install_salt.sh -P git develop

Когда вы закончите, продолжайте настраивать свой экземпляр minion.

Настройте миньона

Теперь, когда у нас установлен миньон, мы можем настроить его так, чтобы он общался с нашим Солт-мастером.

Получите отпечаток пальца открытого ключа мастера соли

Прежде чем мы начнем, мы должны взять ключевой отпечаток мастера соли. Мы можем добавить это в нашу конфигурацию миньонов для повышения безопасности.

На главном сервере Salt введите:

sudo salt-key -F master

Вывод должен выглядеть примерно так:

OutputLocal 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

Значение ключаmaster.pub, расположенного в разделе «Локальные ключи», - это отпечаток, который мы ищем. Скопируйте это значение для использования в нашей конфигурации Minion.

Изменить конфигурацию миньонов

Вернувшись к своему новому миньону Salt, откройте файл конфигурации миньона с правамиsudo:

sudo nano /etc/salt/minion

Нам нужно указать место, где можно найти мастера соли. Это может быть разрешаемое имя домена DNS или IP-адрес:

/etc/salt/minion

master: ip_of_salt_master

Затем установите для параметраmaster_finger значение отпечатка пальца, которое вы скопировали из мастера Salt минуту назад:

/etc/salt/minion

master_finger: '7b:97:23:4b:a4:6d:16:31:2d:c9:e3:81:e2:d5:32:92'

Сохраните и закройте файл, когда вы закончите.

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

sudo restart salt-minion

Новому миньону следует связаться с мастером Salt по указанному адресу. Затем он отправит свой ключ мастеру для принятия. Чтобы надежно проверить ключ, необходимо проверить отпечаток ключа на новом сервере minion.

Для этого введите:

sudo salt-call key.finger --local

Вы должны увидеть результат, который выглядит следующим образом:

Outputlocal:
    32:2a:7c:9a:f2:0c:d1:db:84:df:d3:82:00:d5:8f:be

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

Примите Ключ Миньона от Мастера соли

Вернувшись на главный сервер Salt, мы должны принять ключ.

Сначала убедитесь, что у нас есть неприемлемый ключ, ожидающий на мастере:

sudo salt-key --list all

Вы должны увидеть новый ключ в разделе «Unaccepted Keys», связанный с вашим новым миньоном:

OutputAccepted Keys:
saltmaster
Denied Keys:
Unaccepted Keys:
saltminion
Rejected Keys:

Проверьте отпечаток нового ключа. Измените выделенную часть ниже идентификатором миньона, который вы видите в разделе «Недопустимые ключи»:

sudo salt-key -f saltminion

Вывод должен выглядеть примерно так:

OutputUnaccepted Keys:
saltminion: 32:2a:7c:9a:f2:0c:d1:db:84:df:d3:82:00:d5:8f:be

Если это соответствует значению, полученному вами от миньона при выполнении командыsalt-call, вы можете безопасно принять ключ, набрав:

sudo salt-key -a saltminion

Теперь ключ должен быть добавлен в раздел «Принятые ключи»:

sudo salt-key --list all
OutputAccepted Keys:
saltmaster
saltminion
Denied Keys:
Unaccepted Keys:
Rejected Keys:

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

sudo salt '*' test.ping

Вы должны получить ответы от обоих настроенных вами демонов миньонов:

Outputsaltminion:
    True
saltmaster:
    True

Заключение

Теперь у вас должен быть настроен главный сервер Salt для управления вашей инфраструктурой. Мы также прошли процесс настройки нового сервера миньонов. Вы можете следовать той же процедуре для дополнительных миньонов соли. Это основные навыки, необходимые для настройки новой инфраструктуры для управления солью.

Related