Установка и настройка Salt Master и Salt Minions на Ubuntu 18.04
Инструкция по настройке взаимодействия Salt Master и Salt Minions на серверах под управлением операционной системы Ubuntu 18.04.
Что это такое?
Salt - это платформа с открытым исходным кодом для управления инфраструктурой, построена на динамической коммуникационной шине. Salt может использоваться для управления конфигурацией для любого набора систем или приложений, для управления данными, для удаленного запуска команд и т.д.
Сетевая архитектура Salt
Два основных компонента, которые содержит Salt это один Salt Master и несколько Salt Minions:
Salt Master (Мастер) - это центральная система управления, используемая для отправки команд и конфигураций в Salt Minion (ноды).
Salt Minions (Ноды, Миньоны) - это системы, которые работают на управляемых серверах и получают команды и конфигурации от мастера.
Для настройки взаимодействия потребуется минимум 2 виртуальных сервера, один для мастера и один для узла. Настройка всех узлов выполняется аналогично.
Установка Salt
Следующие действия необходимо выполнить как Master-сервере, так и на управляемых узлах.
Для начала необходимо импортировать ключ репозитория:
wget -O -
https://repo.saltstack.com/py3/ubuntu/18.04/amd64/latest/SALTSTACK-GPG-KEY.pub | sudo apt-key add -
Затем необходимо добавить репозиторий с помощью следующей команды:
echo "deb http://repo.saltstack.com/py3/ubuntu/18.04/amd64/latest bionic main" | sudo tee /etc/apt/sources.list.d/saltstack.list
Обновите список системных пакетов:
sudo apt update
Установите пакеты Salt, для Master:
sudo apt -y install salt-api salt-cloud salt-master salt-ssh salt-syndic
для Minion:
sudo apt -y install salt-minion
Откройте следующие порты, чтобы компоненты могли взаимодействовать по сети:
sudo ufw allow proto tcp from any to any port 4505,4506
Настройка Salt Master
С помощью текстового редактора, например vi, откройте файл /etc/salt/master:
vi /etc/salt/master
Найдите директиву:
#interface: 0.0.0.0
Раскомментируйте найденную строку и вместо 0.0.0.0 укажите IP-адрес сервера:
interface: 121.122.121.122
После внесения изменений перезагрузите службу:
/etc/init.d/salt-master restart
Выведите на экран главный ключ, который необходим для подключения управляемых узлов, выполнив следующую команду:
salt-key -F master
Ожидаемый вывод:
Local Keys:
master.pem: c2:2b:2f:5f:91:f2:c3:8b:99:35:50:f9:eb:3f:5b:d7:e4:8d:c1:a2:50:9a:04:f9:e9:75:1b:3a:13:b3:24:0e
master.pub: 10:e1:34:61:07:03:ba:aa:c2:56:61:ba:bb:1c:af:34:55:e9:a4:66:a1:35:73:00:17:9f:2f:98:d7:71:f3:09
Скопируйте содержимое строки master.pub прямо из консоли.
Настройка Salt Minion
По умолчанию Salt Minion пытается подключиться к DNS-имени «salt». С помощью текстового редактора, например vi, откройте файл /etc/hosts:
vi /etc/hosts
Укажите IP-адрес Master Salt и имя salt, например, так:
121.122.121.122 salt
Установите идентификатор для вашей ноды, для этого откройте файл:
vi /etc/salt/minion_id
И вставьте любое удобное и понятное название без пробелов, например:
ubuntu-sys
Откройте файл конфигурации ноды:
vi /etc/salt/minion
Найдите директиву master_finger и вставьте скопированный ключ master.pub, как показано в примере:
master_finger: '10:e1:34:61:07:03:ba:aa:c2:56:61:ba:bb:1c:af:34:55:e9:a4:66:a1:35:73:00:17:9f:2f:98:d7:71:f3:09'
Сохраните изменения и выполните перезагрузку службы:
/etc/init.d/salt-minion restart
Настройка ключей
Затем подключитесь к Master-ноде и проверьте появившиеся ключи:
salt-key -L
Ожидаемый вывод:
Accepted Keys:
Denied Keys:
Unaccepted Keys:
ubuntu-sys
Rejected Keys:
Примите ключ:
salt-key --accept='ubuntu-sys'
Перед вами появится следующее диалоговое окно:
The following keys are going to be accepted:
Unaccepted Keys:
ubuntu-sys
Proceed? [n/Y] Y
Key for minion ubuntu-sys accepted.
Для проверки выполните следующую команду:
salt-key -L
Проверка Master-Minion соединения
Проверьте связь между Мастером и Миньоном, выполнив команду test.ping:
salt ubuntu-sys test.ping
ubuntu-sys:
True
Чтобы проверить связь между мастером и всеми нодами, используйте команду:
salt '*' test.ping/noindex>