Установка SaltStack · 6 min read · Oct 27, 2025

Как установить фреймворк автоматизации IT SaltStack на Debian 12

Salt или Saltstack — это фреймворк автоматизации IT с открытым исходным кодом, написанный на Python. Он позволяет администраторам выполнять команды удаленно на нескольких машинах напрямую.

Salt разработан с архитектурой Master и Minion. Salt master — это центральный контроллер управления конфигурацией Salt, а Minions — это серверы, управляемые Salt master, или вы называете миньонов целевыми серверами.

В этом руководстве мы покажем вам, как установить SaltStack на серверах Debian 12. Мы покажем вам, как установить Salt Master и Minion, как выполнять произвольные команды через Salt, а затем создать первое состояние Salt для установки LAMP Stack.

Предварительные требования

Перед тем как начать, убедитесь, что у вас есть следующее:

  • Два или три сервера Debian 12 — в этом примере мы будем использовать master сервер на 192.168.5.15 и minion1 сервер на 192.168.5.21.
  • Непользователь с правами администратора.

Настройка файла /etc/hosts

В этом разделе вы настроите файл /etc/hosts, чтобы каждый сервер мог подключаться по имени хоста, что проще, чем использовать IP-адрес.

Откройте файл /etc/hosts с помощью следующего редактора nano.

sudo nano /etc/hosts

Вставьте детали хоста и IP-адрес в файл. Убедитесь, что вы изменили IP-адреса и имена хостов на свои данные.

192.168.5.15 master  
192.168.5.21 minion1

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

Добавление репозитория SaltStack

После настройки файла /etc/hosts вы должны добавить репозиторий SaltStack на все ваши серверы Debian. SaltStack предоставляет официальный репозиторий для большинства дистрибутивов Linux, включая последний Debian 12.

Сначала создайте новый каталог /etc/apt/keyrings с помощью команды ниже.

mkdir /etc/apt/keyrings

Скачайте GPG-ключ для репозитория SaltStack с помощью команды ниже.

sudo curl -fsSL -o /etc/apt/keyrings/salt-archive-keyring-2023.gpg https://repo.saltproject.io/salt/py3/debian/12/amd64/SALT-PROJECT-GPG-PUBKEY-2023.gpg

После загрузки GPG-ключа добавьте репозиторий SaltStack с помощью следующей команды.

echo "deb [signed-by=/etc/apt/keyrings/salt-archive-keyring-2023.gpg arch=amd64] https://repo.saltproject.io/salt/py3/debian/12/amd64/latest bookworm main" | sudo tee /etc/apt/sources.list.d/salt.list

Теперь обновите и обновите индекс пакетов Debian.

sudo apt update

Вы можете увидеть ниже добавленный репозиторий SaltStack на серверах Debian.

add repo

Настройка UFW

В этом примере вы настроите и включите UFW (Uncomplicated Firewall) на ваших серверах Debian. Итак, вы установите UFW, откроете SSH-порт, затем запустите и включите UFW.

Установите UFW на вашу систему Debian с помощью команды ниже.

sudo apt install ufw -y

После установки UFW выполните следующую команду, чтобы включить профиль приложения OpenSSH. Вы увидите вывод Правила добавлены.

sudo ufw allow OpenSSH

Теперь включите UFW с помощью команды ниже. Введите y для подтверждения, запуска и включения UFW.

sudo ufw enable

Вы получите вывод ‘Брандмауэр активен …‘, как только UFW будет запущен и включен.

Установка Salt Master

После выполнения задач выше вы готовы установить SaltStack. Вы установите и настроите Salt Master на сервере master.

На сервере master выполните команду ниже, чтобы установить пакет salt-master. Введите Y для подтверждения установки.

sudo apt install salt-master

install salt master

После завершения установки откройте конфигурацию по умолчанию Salt Master /etc/salt/master с помощью команды редактора nano ниже.

sudo nano /etc/salt/master

Измените значение interface по умолчанию на ваш локальный IP-адрес. В этом примере IP-адрес сервера master 192.168.5.15.

interface: 192.168.5.15

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

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

sudo systemctl restart salt-master

Затем проверьте службу salt-master, чтобы убедиться, что служба работает.

sudo systemctl status salt-master

Если служба работает, вы увидите вывод, такой как active (running).

verify salt master

Далее выполните команду ниже, чтобы открыть TCP-порты 4505 и 4506, которые будет использовать Salt Master.

sudo ufw allow 4505,4506/tcp

Наконец, проверьте список портов на вашем сервере master с помощью команды ниже. Убедитесь, что доступ к портам 4505 и 4506 разрешен.

sudo ufw status

setup ufw

Установка Salt Minion

Теперь, когда вы настроили Salt Master, перейдите к настройке Salt Minion на сервере minion1. Вы установите salt-minion, а затем настроите его для подключения к серверу Salt Master.

Установите пакет salt-minion на сервер minion1 с помощью команды ниже. Введите Y для подтверждения установки.

sudo apt install salt-minion

install salt-minion

После завершения установки откройте конфигурацию Salt Minion /etc/salt/minion с помощью команды редактора nano.

sudo nano /etc/salt/minion

Введите IP-адрес вашего Salt Master в параметр master, как показано ниже:

master: 192.168.5.15

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

Далее выполните команду ниже, чтобы перезапустить службу salt-minion и применить ваши изменения.

sudo systemctl restart salt-minion

Наконец, проверьте службу salt-minion, чтобы убедиться, что служба работает. Salt Minion автоматически зарегистрируется на сервере Salt Master.

sudo systemctl status salt-minion

Убедитесь, что служба salt-minion работает, как показано ниже:

verify salt minion

Добавление Salt Minion в Salt Master

После настройки Salt Minion вам все еще нужно принять ключ регистрации от серверов Minion.

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

salt-key --finger-all

Если все пройдет хорошо, вы увидите ключ для сервера minion1 или серверов Salt Minion.

Теперь выполните команду ниже, чтобы принять ключ для сервера minion1. Введите Y для подтверждения и принятия ключа.

salt-key -a minion1

Далее снова проверьте список ключей на сервере minion1. Вы увидите ключ для сервера minion1 в разделе Accepted Keys.

salt-key --finger-all

accept key

Теперь вы можете протестировать соединение с сервером Salt Minion, используя команду. Вы можете указать целевой сервер с именем хоста или использовать символ ‘*’ для нацеливания на все доступные серверы Salt Minion.

salt minion1 test.ping  
salt * test.ping

Если соединение с Salt Minion успешно, вы увидите вывод ‘True‘.

Наконец, проверьте версию Salt с помощью команды ниже.

salt minion1 test.version

В этом примере установлен Salt Minion 3007.0.

test salt ping and version

Выполнение произвольной команды через SaltStack

С учетом всего настроенного, вы протестируете установку SaltStack, выполнив произвольную команду на сервере minion1 с сервера master.

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

salt '*' pkg.refresh_db

Теперь выполните команду ниже для обновления пакетов на целевом сервере.

salt '*' pkg.list_upgrades

Далее выполните следующую команду, чтобы показать информацию о пакете apache2.

salt '*' pkg.show apache2

Чтобы проверить запущенные службы на сервере Minion, выполните команду ниже.

salt '*' service.get_running  
salt '*' service.execs

Создание состояния Salt для установки LAMP Stack

В этом разделе вы узнаете, как создать первое состояние Salt для установки LAMP Stack (Apache, MariaDB и PHP) на сервер minion1.

Сначала создайте новый каталог /srv/salt/lamp с помощью команды ниже.

mkdir -p /srv/salt/lamp

Теперь создайте новый файл состояния Salt init /srv/salt/lamp/init.sls с помощью следующего редактора nano.

nano /srv/salt/lamp/init.sls

Добавьте конфигурацию ниже в файл. С помощью этого вы установите LAMP Stack (Apache, MariaDB и PHP) на целевом сервере.

lamp_stack:  
 pkg.installed:  
 - pkgs:  
 - apache2  
 - mariadb-server  
 - php  
 - libapache2-mod-php  
  
apache2:  
 service.running:  
 - enable: True  
 - reload: True  
  
mariadb:  
 service.running:  
 - enable: True  
 - reload: True

Сохраните файл и выйдите.

Теперь выполните команду ниже, чтобы проверить вашу конфигурацию состояния Salt на Salt Minion. Убедитесь, что у вас нет ошибок.

sudo salt * state.show_sls lamp

test salt state

Далее выполните команду ниже, чтобы применить состояние Salt ‘lamp‘ к серверу minion1.

sudo salt minion1 state.apply lamp

Когда процесс завершится, вы получите следующий вывод:

success salt state

Наконец, выполните команду ниже, чтобы проверить службы Apache и MariaDB на сервере minion1.

salt '*' service.get_running

Убедитесь, что обе службы apache2 и mariadb работают.

service status

Заключение

Поздравляем! Вы завершили установку SaltStack (Salt Master и Minion) на серверах Debian 12. Вы также узнали, как выполнять произвольные команды на серверах Minion и создали первое состояние Salt для установки LAMP Stack (Apache2, MariaDB и PHP).

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.