Как установить Saltstack Master и Minion на Debian 11
На этой странице
- Предпосылки
- Установить Saltstack Master
- Настройка мастера Saltstack
- Установка и настройка Saltstack Minion
- Управляйте миньонами от мастера
- Использование файла состояния соли для управления миньонами
- Заключение
SaltStack — это бесплатное программное обеспечение для автоматизации и управления конфигурацией с открытым исходным кодом и на основе Python. Это инструмент командной строки, который помогает вам централизованно управлять инфраструктурой. SoltStack состоит из четырех компонентов. Краткое описание каждого компонента показано ниже:
- Salt Master действует как контроллер командной строки для своих миньонов. Он используется для контроля и управления несколькими миньонами.
- Salt Minions — это демоны-ведомые, которые получают настройки и команды от мастера.
- Формула — это файлы управления конфигурацией.
- Выполнение — это набор команд и модулей, которые выполняются на миньонах.
В этой статье я покажу вам, как установить системы SaltStack Master и Minion на Debian 11.
Предпосылки
- Два сервера с Debian 11.
- На сервере настроен пароль root.
Установить SaltStack Master
По умолчанию SaltStack не включен в стандартный репозиторий Debian 11. Поэтому вам нужно будет добавить репозиторий SaltStack в APT. Вы можете добавить его, выполнив следующую команду:
curl -fsSL -o /usr/share/keyrings/salt-archive-keyring.gpg https://repo.saltproject.io/py3/debian/11/amd64/latest/salt-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/salt-archive-keyring.gpg arch=amd64] https://repo.saltproject.io/py3/debian/11/amd64/latest bullseye main" | tee /etc/apt/sources.list.d/salt.list
После добавления репозитория обновите кеш репозитория с помощью следующей команды:
apt-get update -y
Затем установите необходимые зависимости с помощью следующей команды:
apt-get install python3 salt-common -y
Затем установите мастер SaltStack с помощью следующей команды:
apt-get install salt-master -y
После успешной установки можно переходить к следующему шагу.
Настроить мастер солистака
Далее вам нужно будет определить интерфейс привязки в файле конфигурации SaltSTack.
nano /etc/salt/master
Измените следующую строку:
interface: 0.0.0.0
Сохраните и закройте файл, затем перезапустите мастер SaltStack с помощью следующей команды:
systemctl restart salt-master
Теперь вы можете проверить состояние SaltStack с помощью следующей команды:
systemctl status salt-master
Вы получите следующий вывод:
? salt-master.service - The Salt Master Server Loaded: loaded (/lib/systemd/system/salt-master.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2022-02-12 07:39:48 UTC; 9s ago Docs: man:salt-master(1) file:///usr/share/doc/salt/html/contents.html https://docs.saltproject.io/en/latest/contents.html Main PID: 19403 (salt-master) Tasks: 32 (limit: 2341) Memory: 201.5M CPU: 6.109s CGroup: /system.slice/salt-master.service ??19403 /usr/bin/python3 /usr/bin/salt-master ??19407 /usr/bin/python3 /usr/bin/salt-master ??19431 /usr/bin/python3 /usr/bin/salt-master ??19434 /usr/bin/python3 /usr/bin/salt-master ??19435 /usr/bin/python3 /usr/bin/salt-master ??19436 /usr/bin/python3 /usr/bin/salt-master ??19437 /usr/bin/python3 /usr/bin/salt-master ??19444 /usr/bin/python3 /usr/bin/salt-master ??19445 /usr/bin/python3 /usr/bin/salt-master ??19446 /usr/bin/python3 /usr/bin/salt-master ??19448 /usr/bin/python3 /usr/bin/salt-master ??19451 /usr/bin/python3 /usr/bin/salt-master ??19454 /usr/bin/python3 /usr/bin/salt-master Feb 12 07:39:48 debian11 systemd[1]: Starting The Salt Master Server... Feb 12 07:39:48 debian11 systemd[1]: Started The Salt Master Server.
Как только вы закончите, вы можете перейти к следующему шагу.
Установите и настройте Saltstack Minion
На этом этапе SaltStack Master установлен и настроен. Теперь войдите на другой компьютер и добавьте репозиторий SaltStack Minion с помощью следующей команды:
curl -fsSL -o /usr/share/keyrings/salt-archive-keyring.gpg https://repo.saltproject.io/py3/debian/11/amd64/latest/salt-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/salt-archive-keyring.gpg arch=amd64] https://repo.saltproject.io/py3/debian/11/amd64/latest bullseye main" | tee /etc/apt/sources.list.d/salt.list
После добавления репозитория обновите кеш репозитория с помощью следующей команды:
apt-get update -y
Затем установите SaltStack Minion с помощью следующей команды:
apt-get install salt-minion -y
После успешной установки отредактируйте файл конфигурации SaltStack Minion и определите главный IP-адрес.
nano /etc/salt/minion
Измените следующую строку:
master: salt-master-ip
Сохраните и закройте файл, когда закончите.
Затем вам нужно будет аутентифицировать миньонов, используя общедоступный отпечаток пальца мастера.
На компьютере Salt Master выведите список всех отпечатков пальцев, используя следующую команду:
salt-key --finger-all
Вы получите следующий вывод:
Local Keys: master.pem: b7:f0:ed:19:bf:e8:e0:9d:c3:9c:a2:09:2c:97:2f:6b:0f:cb:eb:76:3d:d7:d5:a9:7d:0c:3a:60:6e:9f:d7:78 master.pub: 5e:4f:2b:37:41:cc:4b:9c:b0:ed:cb:0a:fb:c7:59:54:5f:11:34:ab:d2:99:96:c1:e7:ef:4d:95:b0:7c:d3:d1
Теперь скопируйте строку отпечатка пальца master.pub и добавьте ее в файл конфигурации Minion.
На машине Minion отредактируйте файл конфигурации:
nano /etc/salt/minion
Добавьте основной отпечаток пальца, как показано ниже:
master_finger: '5e:4f:2b:37:41:cc:4b:9c:b0:ed:cb:0a:fb:c7:59:54:5f:11:34:ab:d2:99:96:c1:e7:ef:4d:95:b0:7c:d3:d1'
Вам также нужно будет определить имя миньона:
id: Minion1
Сохраните и закройте файл, затем перезапустите SaltStack Minion с помощью следующей команды:
systemctl restart salt-minion
Вы также можете проверить статус миньона SaltStack с помощью следующей команды:
systemctl status salt-minion
Вы получите следующий вывод:
? salt-minion.service - The Salt Minion Loaded: loaded (/lib/systemd/system/salt-minion.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2022-02-12 07:46:04 UTC; 7s ago Docs: man:salt-minion(1) file:///usr/share/doc/salt/html/contents.html https://docs.saltproject.io/en/latest/contents.html Main PID: 2324 (salt-minion) Tasks: 8 (limit: 2341) Memory: 59.9M CPU: 1.185s CGroup: /system.slice/salt-minion.service ??2324 /usr/bin/python3 /usr/bin/salt-minion ??2326 /usr/bin/python3 /usr/bin/salt-minion ??2328 /usr/bin/python3 /usr/bin/salt-minion Feb 12 07:46:04 debian11 systemd[1]: Starting The Salt Minion... Feb 12 07:46:04 debian11 systemd[1]: Started The Salt Minion.
Вы также можете проверить отпечаток пальца миньона, используя следующую команду:
salt-call key.finger --local
Вы получите следующий вывод:
local: 14:12:ef:33:d2:1e:49:23:7b:a2:74:8d:19:fc:be:5e:6d:a6:57:ec:4f:a9:da:23:69:3f:62:1b:6b:4b:2f:27
На машине SaltStack Master сопоставьте отпечаток с помощью следующей команды:
salt-key --finger-all
Вы получите следующий вывод:
Local Keys: master.pem: b7:f0:ed:19:bf:e8:e0:9d:c3:9c:a2:09:2c:97:2f:6b:0f:cb:eb:76:3d:d7:d5:a9:7d:0c:3a:60:6e:9f:d7:78 master.pub: 5e:4f:2b:37:41:cc:4b:9c:b0:ed:cb:0a:fb:c7:59:54:5f:11:34:ab:d2:99:96:c1:e7:ef:4d:95:b0:7c:d3:d1 Unaccepted Keys: Minion1: 14:12:ef:33:d2:1e:49:23:7b:a2:74:8d:19:fc:be:5e:6d:a6:57:ec:4f:a9:da:23:69:3f:62:1b:6b:4b:2f:27
В SaltStack Master примите миньона с помощью следующей команды:
salt-key -a Minion1
Вы получите следующий вывод:
The following keys are going to be accepted: Unaccepted Keys: Minion1 Proceed? [n/Y] Y Key for minion Minion1 accepted.
Теперь проверьте соединение между Мастером и Миньоном, используя следующую команду:
salt Minion1 test.ping
Вы получите следующий вывод:
Minion1: True
Как только вы закончите, вы можете перейти к следующему шагу.
Управление миньонами от Мастера
После успешного соединения между Мастером и Миньоном. Давайте начнем выполнять некоторые команды на миньонах.
Выполните следующую команду, чтобы получить список доступного дискового пространства на Minion:
salt '*' disk.usage
Вы получите следующий вывод:
Minion1: ---------- /: ---------- 1K-blocks: 51538400 available: 47658628 capacity: 4% filesystem: /dev/sda1 used: 1661604 /dev: ---------- 1K-blocks: 998936 available: 998936 capacity: 0% filesystem: udev used: 0 /dev/shm: ---------- 1K-blocks: 1015232 available: 1015152 capacity: 1% filesystem: tmpfs used: 80
Чтобы установить пакет Apache на Minion, выполните следующую команду:
salt Minion1 pkg.install apache2
Вы получите следующий вывод:
Minion1: ---------- apache2: ---------- new: 2.4.52-1~deb11u2 old: apache2-bin: ---------- new: 2.4.52-1~deb11u2 old: apache2-data: ---------- new: 2.4.52-1~deb11u2 old: apache2-utils: ---------- new: 2.4.52-1~deb11u2 old: libapr1: ---------- new: 1.7.0-6+deb11u1 old: libaprutil1: ---------- new: 1.6.1-5 old: libaprutil1-dbd-sqlite3: ---------- new: 1.6.1-5 old: libaprutil1-ldap: ---------- new: 1.6.1-5 old:
Чтобы проверить свободную память на миньоне, выполните следующую команду:
salt '*' cmd.run 'free -m'
Вы получите следующий вывод:
Minion1: total used free shared buff/cache available Mem: 1982 140 1392 2 450 1691 Swap: 0 0 0
Используйте файл состояния соли для управления миньонами
Файлы состояния также известны как файлы управления конфигурацией, которые используются для настройки миньонов и управления ими.
Чтобы создать файл состояния, вам потребуется создать базу среды для SaltStack.
mkdir /src/salt
Затем создайте файл состояния с помощью следующей команды:
nano /src/salt/setup.sls
Добавьте следующий код для установки пакетов PHP, UNZIP и Apache на Minions:
network_utilities: pkg.installed: - pkgs: - php - unzip apache2_pkg: pkg.installed: - name: apache2 apache2_service: service.running: - name: apache2 - enable: True - require: - pkg: apache2_pkg
Сохраните и закройте файл, затем примените конфигурацию ко всем миньонам, используя следующую команду:
salt '*' state.apply setup
Вы получите следующий вывод:
Minion1: ---------- ID: network_utilities Function: pkg.installed Result: True Comment: The following packages were installed/updated: php, unzip Started: 07:51:22.424504 Duration: 17349.907 ms Changes: ---------- libapache2-mod-php7.4: ---------- new: 7.4.25-1+deb11u1 old: php: ---------- new: 2:7.4+76 old: php-common: ---------- new: 2:76 old: php7.4: ---------- new: 7.4.25-1+deb11u1 old: php7.4-cli: ---------- new: 7.4.25-1+deb11u1 old: php7.4-common: ---------- new: 7.4.25-1+deb11u1 old: php7.4-json: ---------- new: 7.4.25-1+deb11u1 old: php7.4-opcache: ---------- new: 7.4.25-1+deb11u1 old: php7.4-readline: ---------- new: 7.4.25-1+deb11u1 old: psmisc: ---------- new: 23.4-2 old: unzip: ---------- new: 6.0-26 old: ---------- ID: apache2_pkg Function: pkg.installed Name: apache2 Result: True Comment: All specified packages are already installed Started: 07:51:39.780956 Duration: 1029.457 ms Changes: ---------- ID: apache2_service Function: service.running Name: apache2 Result: True Comment: The service apache2 is already running Started: 07:51:40.812210 Duration: 35.61 ms Changes: Summary for Minion1 ------------ Succeeded: 3 (changed=1) Failed: 0 ------------ Total states run: 3 Total run time: 18.415 s
Заключение
Поздравляем! вы успешно установили и настроили SaltStack Master и Minion на сервере Debian 11. Мы также объяснили, как управлять миньонами с помощью файлов состояний и командной строки. Я надеюсь, что это поможет вам автоматизировать и управлять вашей инфраструктурой из центра. Не стесняйтесь спрашивать меня, если у вас есть какие-либо вопросы.