Как установить Saltstack Master и Minion на Debian 11

12 set 2022 7 min di lettura
Как установить Saltstack Master и Minion на Debian 11
Indice dei contenuti

Введение

SaltStack — это бесплатное программное обеспечение для управления конфигурацией и автоматизацией на основе Python с открытым исходным кодом. Это инструмент командной строки, который помогает вам централизованно управлять инфраструктурой. SoltStack состоит из четырех компонентов. Ниже приводится краткое описание каждого компонента:

  • Salt Master выступает в роли контроллера командной строки для своих миньонов (миньонов). Он используется для контроля и управления определенным количеством миньонов.
  • Соленые миньоны — это подчиненные демоны, которые получают конфигурации и команды от мастера.
  • Формула представляет собой файл управления конфигурацией.
  • Исполнение — это набор команд и модулей, которые выполняются на миньонах.

В этой статье я покажу вам, как установить системы SaltStack Master и Minion на Debian 11.

Если вы хотите установить Saltstack на удаленный сервер, продолжайте читать, в противном случае пропустите первый абзац «Подключение к серверу» и читайте следующий.

Подключение к серверу

Чтобы получить доступ к серверу, вам нужно знать IP-адрес. Вам также потребуется ваше имя пользователя и пароль для аутентификации. Чтобы подключиться к серверу как root, введите следующую команду:

ssh root@IP_DEL_SERVER

Далее вам нужно будет ввести пароль пользователя root.

Если вы не используете пользователя root, вы можете войти в систему с другим именем пользователя, используя ту же команду, а затем изменить root на свое имя пользователя:

ssh nome_utente@IP_DEL_SERVER

Затем вам будет предложено ввести пароль пользователя.

Стандартный порт для подключения по ssh — 22, если ваш сервер использует другой порт, вам нужно будет указать его с помощью параметра -p, затем введите следующую команду:

ssh nome_utente@IP_DEL_SERVER -p PORTA

Предпосылки

  • Два сервера под управлением 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 Minion с помощью следующей команды:

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:

Чтобы проверить свободную память на Minion, выполните следующую команду:

salt '*' cmd.run 'free -m'

Вы получите следующий вывод:

Minion1:
 total used free shared buff/cache available
 Mem: 1982 140 1392 2 450 1691
 Swap: 0 0 0

Используйте Salt State File для управления миньонами

Файлы состояния также известны как файлы управления конфигурацией, используемые для настройки миньонов и управления ими.

Чтобы создать файл состояния, вам потребуется создать базу среды для 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 и Minions на сервере Debian 11. Мы также объяснили, как управлять Minions с помощью файлов состояния и командной строки. Надеюсь, это поможет вам автоматизировать и управлять вашей инфраструктурой из центрального местоположения.

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.