Перейти к основному содержимому
Версия: 0.3.0

Установка агента SALT.BOX

предупреждение

В дистрибутиве SALT.BOX версии 0.3.0 используются компоненты SaltStack 3007.13.
Для обеспечения полной совместимости агента используйте на управляемых устройствах агента той же версии — 3007.13.

Установка в ОС Linux

Установка пакета RPM

  1. Для установки репозитория Salt Project выполните следующую команду:

    curl -fsSL https://github.com/saltstack/salt-install-guide/releases/latest/download/salt.repo | sudo tee /etc/yum.repos.d/salt.repo
    примечание

    Из-за наличия в EPEL классических пакетов Salt возможна загрузка классических пакетов старых версий Salt вместо пакетов onedir.

    Во время разрешения зависимостей при выборе лучшего поставщика среди нескольких dnf учитывает приоритет репозитория каждого поставщика.
    Значение представляет собой целое число от 1 до 99, где 1 — наиболее предпочтительный репозиторий, а 99 — наименее предпочтительный.
    По умолчанию все репозитории имеют приоритет 80.

    EPEL рассматривал репозиторий Salt как 99.
    Чтобы решить эту проблему, Salt изменил свой уровень приоритета на 10 для RHEL 8 и 9.

  2. Чтобы очистить метаданные репозитория, выполните:

    sudo dnf clean expire-cache
  3. Установка пакета salt-minion:

    предупреждение

    STS-релизы не рекомендуются для продуктивной среды.
    Salt Project рекомендует развёртывать LTS-релизы в продуктивной среде.

    Установите пакет:

    sudo dnf install salt-minion

    Если вы хотите установить конкретный релиз salt-minion, укажите суффикс полной версии релиза Salt.
    Например:

    sudo dnf install salt-minion-3006.9

    Для закрепления версии пакета, когда необходимо исключить его обновление при выполнении dnf upgrade, может быть использована команда dnf versionlock.

    sudo dnf install 'dnf-command(versionlock)'
    sudo dnf versionlock add salt-minion
  4. Включите и запустите службу salt-minion:

    sudo systemctl enable salt-minion && sudo systemctl start salt-minion
    примечание

    При установке версии Salt onedir (3006 и более поздние) Salt устанавливает собственную локальную версию Python и зависимости, необходимые для основных функций Salt.

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

Установка пакета DEB

  1. Для установки репозитория Salt Project выполните следующие команды:

    # Убедиться, что каталог keyrings существует
    mkdir -p /etc/apt/keyrings
    # Загрузить открытый ключ
    curl -fsSL https://packages.broadcom.com/artifactory/api/security/keypair/SaltProjectKey/public | sudo tee /etc/apt/keyrings/salt-archive-keyring.pgp
    # Создать целевую конфигурацию репозитория
    curl -fsSL https://github.com/saltstack/salt-install-guide/releases/latest/download/salt.sources | sudo tee /etc/apt/sources.list.d/salt.sources
  1. Для обновления метаданных выполните:

    sudo apt update
  2. Установка пакета salt-minion:

    предупреждение

    STS-релизы не рекомендуются для продуктивной среды.
    Salt Project рекомендует развёртывать LTS-релизы в продуктивной среде.

    Чтобы ограничить обновления мажорной версией Salt 3006 LTS, создайте файл /etc/apt/preferences.d/salt-pin-1001 с помощью следующей команды:

    echo 'Package: salt-*
    Pin: version 3006.*
    Pin-Priority: 1001' | sudo tee /etc/apt/preferences.d/salt-pin-1001

    Установите пакет:

    sudo apt install salt-minion

    Если вы хотите установить конкретную версию salt-minion, укажите суффикс полной версии релиза Salt.
    Например:

    sudo apt install salt-minion=3006.9
    предупреждение

    Конфликты зависимостей Salt

    Если Вы используете не последний релиз целевой мажорной версии, Вам может потребоваться установить другие пакеты salt в закрепленном виде.
    Например, чтобы установить salt-minion, потребуется установить salt-common той же версии:

    sudo apt install salt-minion=3006.9 salt-common=3006.9
  3. Включите и запустите службу salt-minion:

    sudo systemctl enable salt-minion && sudo systemctl start salt-minion
    примечание

    При установке версии Salt onedir (3006 и более поздние) Salt устанавливает собственную локальную версию Python и зависимости, необходимые для основных функций Salt.

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

Установка на Альт 10.4, 11.1:

В ОС Альт 10.4 и ОС Альт 11.1 для обеспечения совместимости с компонентами контроллера SALT.BOX следует установить пакет salt-minion версии 3007.1.
В настоящее время в актуальных репозиториях платформ p10 и p11 размещены пакеты версии 3007.5; пакеты salt-minion версии 3007.1 и их зависимости доступны в архивах.

  1. Загрузите и установите пакет salt-minion версии 3007.1 и его зависимости.

    Для ОС Альт 10.4, 11.1:

    wget https://ftp.altlinux.org/pub/distributions/ALTLinux/c10f1/branch/files/noarch/RPMS/salt-minion-3007.1-alt0.p10.1.noarch.rpm \
    https://ftp.altlinux.org/pub/distributions/ALTLinux/c10f1/branch/files/noarch/RPMS/python3-module-salt-3007.1-alt0.p10.1.noarch.rpm
    sudo rpm -Uvh --oldpackage ./salt-minion-3007.1-alt0.p10.1.noarch.rpm ./python3-module-salt-3007.1-alt0.p10.1.noarch.rpm
  1. Включите и запустите службу salt-minion:

    sudo systemctl enable salt-minion && sudo systemctl start salt-minion

Установка на Astra Linux 1.7.7, 1.8.2:

В операционных системах указанных версий будет установлен пакет salt-minion версии 3006.9 из официального репозитория.

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

Настройка

После установки salt-minion необходимо настроить его для связи с контроллером SALT.BOX.
Для этого в файле /etc/salt/minion укажите адрес или имя хоста контроллера SALT.BOX:

master: <IP_ADDRESS сервера Salt Master> | <HOST>

После изменения файла конфигурации перезапустите службу salt-minion:

sudo systemctl restart salt-minion

Установка в ОС Windows

предупреждение

В некоторых функциях модулей SaltStack используются вызовы штатных системных утилит ОС Windows, которые используют ANSI-кодировку текущей системной OEM-кодовой страницы, а не полноценный Unicode.
Как следствие, данные функции не будут работать в ОС Windows, если выбрана локаль, отличная от en-US.

Для обеспечения совместимости функций модулей SaltStack задайте системную локаль en-US.

  1. Powershell:

    Set-WinSystemLocale en-US
  2. Командная строка Windows:

    control /name Microsoft.RegionAndLanguage

    В открывшемся диалоговом окне выберите вкладку Дополнительно, нажмите кнопку Изменить язык системы и задайте значение «Английский (США)».

Интерактивная установка

  1. Загрузите файл установки агента, соответствующий разрядности Вашей ОС, с сайта проекта Salt Project.

  2. Для установки агента SALT.BOX в интерактивном режиме запустите файл установки без указания параметров запуска.

  3. Нажмите кнопку Next > в стартовом окне инсталлятора Рис. 2.

    Стартовое окно инсталлятора службы salt-minion
    Рисунок 2. Стартовое окно инсталлятора службы salt-minion
  4. Нажмите кнопку I Agree в окне лицензионного соглашения Рис. 3.

    Окно лицензионного соглашения
    Рисунок 3. Окно лицензионного соглашения
  5. Укажите путь к папке инсталляции агента Рис. 4.

    Окно выбора папки назначения
    Рисунок 4. Окно выбора папки назначения
  6. В окне установки параметров службы salt-minion в первом поле укажите выделенный IP-адрес сервера.
    Параметры Minion Name: hostname и Default config оставьте без изменений Рис. 5.
    Нажмите кнопку Install Рис. 5 и дождитесь окончания установки агента.

    Окно установки параметров службы salt-minion
    Рисунок 5. Окно установки параметров службы salt-minion
  7. Нажмите кнопку Finish в окне завершения установки Рис. 6.

    Окно завершения установки
    Рисунок 6. Окно завершения установки

Установка с помощью групповых политик Microsoft Active Directory

  1. В меню Пуск выберите пункт Administrative Tools -> Group Policy Management, либо выберите пункт Выполнить и запустите консоль gpmc.msc Рис. 7.

    Запуск оснастки управления групповой политикой
    Рисунок 7. Запуск оснастки управления групповой политикой
  2. В дереве объектов домена нажмите правой кнопкой мыши на узле Объекты групповой политики, выберите пункт Создать Рис. 8.

    Создание объекта групповой политики
    Рисунок 8. Создание объекта групповой политики
  3. В диалоговом окне введите наименование нового объекта групповой политики и нажмите кнопку ОК.
    В данном примере объект групповой политики называется "Установка клиента" Рис. 9.

    Ввод наименования нового объекта групповой политики
    Рисунок 9. Ввод наименования нового объекта групповой политики
  4. В дереве объектов домена кликните правой кнопкой мыши на нужном организационном подразделении (OU) (в данном примере — "Тестовое подразделение"), выберите пункт Связать существующий объект групповой политики...
    Рис. 10.

    Создание связи Organizational Unit с объектом групповой политики
    Рисунок 10. Создание связи Organizational Unit с объектом групповой политики
  5. В окне выбора объекта групповой политики выберите объект "Установка клиента" Рис. 11.

    Выбор объекта групповой политики
    Рисунок 11. Выбор объекта групповой политики
  6. В списке объектов групповой политики домена кликните правой кнопкой мыши на объекте "Установка клиента", выберите пункт Изменить Рис. 12.

    Изменение объекта групповой политики
    Рисунок 12. Изменение объекта групповой политики
  7. В открывшемся окне редактора управления групповыми политиками в узле Конфигурация компьютера -> Конфигурация "Windows выберите пункт Сценарии (запуск/завершение) Рис. 13.

  8. В окне со списком сценариев кликните правой кнопкой мыши на сценарии "Автозагрузка", выберите пункт Свойства
    Рис. 13.

    Изменение свойств сценария автозагрузки
    Рисунок 13. Изменение свойств сценария автозагрузки
  9. В открывшемся окне свойств сценария автозагрузки на вкладке Сценарии (запуск/завершение) нажмите кнопку Показать файлы Рис. 14.

    Свойства сценария автозагрузки
    Рисунок 14. Свойства сценария автозагрузки
  10. В папку сценария автозагрузки, открывшуюся в проводнике Windows, скопируйте файл install.bat и .exe-файлы инсталляторов для ОС Windows 32- и 64-разрядной архитектуры Рис. 15.

    Копирование файлов в папку сценария автозагрузки
    Рисунок 15. Копирование файлов в папку сценария автозагрузки
  11. Закройте проводник и нажмите кнопку Добавить на вкладке Сценарии окна свойств сценария автозагрузки Рис. 14.

  12. В окне Добавление сценария укажите имя сценария install.bat и значение его параметра — выделенный IP-адрес сервера — Рис. 16.
    Нажмите кнопку ОК Рис. 16.

    Ввод параметров сценария автозагрузки
    Рисунок 16. Ввод параметров сценария автозагрузки

Проверка подключения агента к контроллеру

Если SALT.BOX был запущен ранее

Сервер SALT.BOX автоматически создаст команду grains.items, нацелив её на подключившегося агента.
После получения ответа от агента контроллер добавит агента в базу данных.

Если SALT.BOX запускается после добавления агента

Необходимо вручную создать команду grains.items, нацелив её на новый minion ID.

Переподключение агента к другому контроллеру

предупреждение

Если агент был успешно подключён и управлялся каким-либо контроллером SALT.BOX, после чего в конфигурации агента был изменён адрес или сетевое имя контроллера, либо контроллер был удалён и развёрнут повторно (с сохранением его IP-адреса или сетевого имени), агент не сможет аутентифицироваться на новом контроллере, т. к. сохранённый на агенте публичный ключ контроллера и публичный ключ нового контроллера будут отличаться.

В примере, приведённом ниже, показан вывод Windows-агента в случае ошибки аутентификации.

2025-07-30 12:55:02,495 [salt.crypt       :1285][ERROR   ][5384] The master key has changed, the salt master could have been subverted, verify salt master's public key
2025-07-30 12:55:02,510 [salt.crypt :903 ][CRITICAL][5384] The Salt Master server's public key did not authenticate!
The master may need to be updated if it is a version of Salt lower than 3006.10, or
If you are confident that you are connecting to a valid Salt Master, then remove the master public key and restart the Salt Minion.
The master public key can be found at:
C:\ProgramData\Salt Project\Salt\conf\pki\minion\minion_master.pub

Для решения проблемы выполните следующие действия:

На Windows-клиенте:
  1. Остановите службу salt-minion:
    net stop salt-minion
  2. Удалите файл с публичным ключом контроллера SALT.BOX:
    del C:\ProgramData\SaltProject\conf\pki\minion_master.pub
  3. Запустите службу salt-minion:
    net start salt-minion
На Linux-клиенте:
  1. Остановите службу salt-minion:
    sudo systemctl stop salt-minion
  2. Удалите файл с публичным ключом контроллера SALT.BOX:
    rm -v /etc/salt/pki/minion/minion_master.pub
  3. Запустите службу salt-minion:
    sudo systemctl start salt-minion

Убедитесь, что агент теперь может выполнять команды от контроллера SALT.BOX.
Это можно сделать, выполнив команду вида salt-call test.version.

Подробное описание процедуры взаимной аутентификации сервера и клиента смотрите в разделе:
Безопасность / Шифрование соединений между агентом и контроллером.