Начало работы с Salt IT Automation Framework на AlmaLinux 9

Salt или Saltstack – это фреймворк автоматизации ИТ с открытым исходным кодом, который позволяет администраторам удаленно выполнять команды на нескольких машинах напрямую. Salt написана в основном на языке Python и построена по архитектуре Master и Minion. Мастер SaltStack – это центральный контроллер управления конфигурацией Salt, а миньоны – это серверы, управляемые мастером SaltStack, или же вы назвали миньоны целевыми серверами.

По умолчанию SaltStack master работает под управлением ОС Linux, но миньоны могут быть использованы на любой операционной системе. Saltstack – это революционное управление конфигурацией для автоматизации развертывания, удаленного выполнения задач и инфраструктуры как код. SaltStack также может использоваться для обеспечения нескольких серверов инфраструктуры, включая физические и виртуальные серверы, а также облако.

В этом руководстве мы расскажем вам, как установить Salt на серверы AlmaLinux 9. Вы также узнаете о базовом использовании модулей Salt и создадите первый проект состояния Salt. В данном случае вы создадите проект состояния Salt для установки LEMP Stack.

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

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

  • 3 сервера AlmaLinux 9.
  • Некорневой пользователь с правами администратора sudo.
  • SELinux со статусом Permissive или Disabled.

Настройка Firewalld на Salt Master

Перед установкой Salt необходимо открыть порты 4505 и 4506 на сервере Salt Master, который будет использоваться Salt Minions для подключения к Salt Master. Для этого вы будете использовать Firewalld.

Выполните следующую команду, чтобы открыть порты 4505 и 4506 для сервера Salt Master.

sudo firewall-cmd --zone=public --permanent --add-port={4505,4506}/tcp

Теперь перезагрузите firewalld, чтобы применить изменения, а затем проверьте список открытых портов в firewalld с помощью следующей команды.

sudo firewall-cmd --reload
sudo firewall-cmd --list-all

После выполнения этой команды порты 4505 и 4506 добавлены в firewalld.

настройка firewalld

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

Пакеты Salt доступны в официальном репозитории Salt. Теперь вам предстоит добавить репозиторий Salt на все ваши серверы AlmaLinux, как на Salt Master, так и на Minions.

Выполните приведенную ниже команду, чтобы импортировать GPG-ключ Salt.

sudo rpm --import https://repo.saltproject.io/salt/py3/redhat/9/x86_64/SALT-PROJECT-GPG-PUBKEY-2023.pub

Теперь загрузите репозиторий Salt на свои системы с помощью следующей команды.

curl -fsSL https://repo.saltproject.io/salt/py3/redhat/9/x86_64/latest.repo | sudo tee /etc/yum.repos.d/salt.repo

добавить репозиторий

После добавления ключа Saltk GPG и репозитория выполните приведенную ниже команду dnf, чтобы проверить список доступных репозиториев в вашей системе и загрузить метаданные для всех доступных репозиториев.

sudo dnf repolist
sudo dnf makecache

Если команда выполнена успешно, полученный результат должен быть похож на следующий:

перезагрузить репо

Установка и настройка Salt Master

После добавления репозитория Salt вы установите и настроите пакет salt-master на главный сервер Salt Master.

Установите пакет salt-master с помощью команды dnf, приведенной ниже. Введите y, когда появится запрос на продолжение установки.

sudo dnf install salt-master

установить salt-master

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

sudo nano /etc/salt/master

Замените параметр interface по умолчанию на локальный IP-адрес, а параметр ID – на имя хоста вашего сервера. В данном случае сервер Salt Master сконфигурирован с локальным IP-адресом 192.168.5.50 и имя хоста master.

interface: 192.168.5.50
id: master

После завершения сохраните и закройте файл.

Далее выполните следующую команду systemctl, чтобы запустить и включить службу salt-master.

sudo systemctl start salt-master
sudo systemctl enable salt-master

start enable salt-master

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

sudo systemctl status salt-master

После успешного выполнения команды на экране должно появиться следующее сообщение активен (работает), что указывает на то, что служба salt-master запущена.

проверить salt-master

Установка и настройка Salt Minion

После настройки Salt Master следующим шагом будет установка salt-minion и настройка серверов Minion для подключения к Salt Master.

Выполните приведенную ниже команду dnf, чтобы установить пакет salt-minion на ваши серверы Minion. Введите y, чтобы подтвердить установку.

sudo dnf install salt-minion

установить salt-minion

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

sudo nano /etc/salt/minion

В опции master введите IP-адрес Salt Master.

master: 192.168.5.50

Введите локальный IP-адрес миньона в опции interface и введите имя хоста сервера в опции id.

interface: 192.168.5.20
id: minion1

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

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

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

start enable salt-minion

После запуска службы salt-minion проверьте ее с помощью следующей команды.

sudo systemctl status salt-minion

Если все прошло успешно, на выходе вы получите активный (запущенный), что подтверждает, что служба salt-minion запущена.

проверить salt-minion

Регистрация миньонов соли в Salt Master

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

Перейдите на Salt Master и выполните приведенную ниже команду salt-key, чтобы получить список ключей отпечатков пальцев.

salt-key --finger-all

Здесь отпечатки пальцев серверов Salt Minion миньон1 и миньон2, которые все еще находятся в статусеНепринятые ключи‘.

клавиши списка

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

salt-key -a minion1
salt-key -a minion2

Вход Y , когда появится запрос на принятие ключа, и вы должны получить результат типа ‘Ключ для миньона minion1/2 принят‘.

принимать ключи

Теперь снова проверьте список ключей отпечатков пальцев на Salt Master с помощью следующей команды.

salt-key --finger-all

Здесь отпечатки пальцев Salt Minion для миньон1 и миньон2 Серверы доступны в Принятые ключи раздел.

клавиши списка

Теперь вы можете управлять серверами Salt Minion из Salt Master через командную строку Salt.

Выполните приведенную ниже команду salt, чтобы проверить соединение между Salt Master и Minion и проверить версию Salt на серверах Minion.

salt '*' test.ping
salt '*' test.version

Если соединение между Salt Master и Minion установлено успешно, на выходе будет показано True будет отображаться. Кроме того, вы можете увидеть соль 3006.4 установлен, что следует из параметра test.version.

тестовая соль

Кроме того, вы можете указать целевой миньон с помощью команды salt следующим образом.

salt minion1 test.ping

Базовое использование модуля состояния Salt

В следующем разделе вы узнаете, как использовать модуль состояния Salt для управления серверами Minion. Вы изучите некоторые модули состояния Salt, такие как cmd для выполнения произвольных команд Linux, pkg для управления пакетами и репозиториями, а также модуль service для управления службами.

Выполнение произвольных команд с помощью модуля cmd

Выполните приведенную ниже команду, чтобы запустить определенные команды Linux с помощью модуля состояния cmd. В этом примере вы проверите подробную информацию о ядре Linux с помощью команды uname -a.

salt '*' cmd.run 'uname -a'

выполнение команды linux через salt

Управление пакетами и репозиторием с помощью модуля pkg

Теперь используйте следующий модуль состояния pkg для управления пакетами и репозиториями на ваших серверах Minion.

Проверьте список репозиториев с помощью pkg.list_repos, затем обновите репозитории с помощью pkg.refresh_db.

salt '*' pkg.list_repos
salt '*' pkg.refresh_db

Вы также можете проверить список доступных обновлений пакетов с помощью аргумента pkg.list_upgrades, приведенного ниже.

salt '*' pkg.list_upgrades

Чтобы установить определенный пакет, используйте следующий аргумент pkg.install.

salt '*' pkg.install vim

pkg install

Управление службами с помощью сервисного модуля

Далее вы можете использовать модуль состояния сервисов для управления сервисами на ваших серверах Minion.

Используйте аргумент service.available, чтобы убедиться, что служба доступна на целевом сервере. Или используйте аргумент service.enabled, чтобы убедиться, что целевая служба включена, или вы также можете использовать service.get_running, чтобы убедиться, что служба запущена.

salt '*' service.available chronyd
salt '*' service.enabled chronyd
salt '*' service.get_running

проверить службу

Наконец, вы можете проверить команду запуска, выполняемую определенной службой, используя аргумент service.execs.

salt '*' service.execs

Создание первого состояния соли

В этом разделе вы создадите первый проект состояния Salt для установки стека LEMP (Nginx, MariaDB и PHP-FPM) на целевые серверы Minion.

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

salt '*' cmd.run 'sudo dnf module enable nginx:1.22 -y'
salt '*' cmd.run 'sudo dnf module enable php:8.1 -y'

включение модуля репозитория с помощью соли

Теперь создайте новый каталог конфигурации /srv/salt/ , который будет использоваться для хранения состояния Salt.

mkdir -p /srv/salt/

Выполните приведенную ниже команду, чтобы создать новый каталог проекта /srv/salt/lemp и init.sls файл.

mkdir -p /srv/salt/lemp
nano /srv/salt/lemp/init.sls

Вставьте в файл следующую конфигурацию. В этом случае вы установите пакеты LEMP Stack на серверы Minion с помощью модуля состояния pkg и убедитесь, что каждая служба запущена и включена с помощью модуля состояния службы.

lemp_stack:
 pkg.installed:
   - pkgs:
     - nginx
     - mariadb-server
     - php
     - php-fpm

nginx:
service.running:
– enable: True
– reload: True

mariadb:
service.running:
– enable: True
– reload: True

php-fpm:
service.running:
– enable: True
– reload: True

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

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

sudo salt * state.show_sls lemp

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

проверка состояния соли

Теперь выполните следующую команду, чтобы применить состояние lemp к серверам Minion.

sudo salt '*' state.apply lemp

Вы должны увидеть сгенерированный отчет об автоматической установке. В данном случае установка пакетов LEMP Stack на оба сервера Minion прошла успешно.

применить состояние соли

Ниже приведены сведения о запущенных и включенных службах.

каждый запущенный сервис

Заключение

В заключение можно сказать, что теперь вы пошагово установили Salt на серверы AlmaLinux 9. Вы установили и настроили Salt Master и Minions на серверах AlmaLinux, а также узнали о базовом использовании модулей состояния Salt и создали свой первый проект состояния Salt для установки LEMP Stack.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *