|
||
---|---|---|
README.md | ||
stand.excalidraw | ||
stand.png |
README.md
Краткое руководство по Salt Stack
В качестве тестового стенда используется виртуальная лаборатория
Установка Salt
процесс установки описан в документации https://docs.saltproject.io/salt/install-guide/en/latest/index.html
Master на Альт сервер
apt-get update && apt-get install -y salt-master salt-minion salt-api
systemctl enable --now salt-master
systemctl enable --now salt-minion
Minion на CentOS Stream 9
sudo rpm --import https://repo.saltproject.io/salt/py3/redhat/9/x86_64/SALT-PROJECT-GPG-PUBKEY-2023.pub
curl -fsSL https://repo.saltproject.io/salt/py3/redhat/9/x86_64/latest.repo | sudo tee /etc/yum.repos.d/salt.repo
sudo dnf install -y salt-minion
sudo systemctl enable --now salt-minion
Minion на Debian 12
su -
mkdir /etc/apt/keyrings
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
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" | tee /etc/apt/sources.list.d/salt.list
apt update
apt install -y salt-minion
systemctl enable --now salt-minion
Minion на Альт Сервер 10.2
su -
apt-get update
apt-get install -y salt-minion
systemctl enable --now salt-minion
Настройка master
Описание возможных директив конфигурационного файла приводится в файле /etc/salt/master
или в документации https://docs.saltproject.io/en/latest/ref/configuration/master.html
Хорошим тоном является создание своих конфигурационных файлов в директории *.d
vim /etc/salt/master.d/master.conf
# The network interface to bind to
interface: 0.0.0.0
# The Request/Reply port
# Для файлового сервера, аутентификации, возврата результатов и проч.
ret_port: 4506
# The port minions bind to for commands, aka the publish port
publish_port: 4505
# Писать статистику после выполнения команд
cli_summary: true
worker_threads: 5
Настройка minion
https://docs.saltproject.io/en/latest/ref/configuration/minion.html
cat /etc/salt/minion.d/minion.conf
# Адрес мастера
master: 10.1.4.1
# Уникальный идентификатор миньона
# по-умолчанию берётся hostname
id: centos-minion-1
Ключи
Для аутентификации и авторизации в Salt используются пары ключей (закрытый, открытый). При включении службы миньона формируется пара ключей, открытый ключ отправляется на мастер.
У мастера есть специальная утилита для работы с ключами - salt-key
Некоторые примеры работы с ней:
Посмотреть все ключи
[root@alt-master ~]# salt-key -L
Accepted Keys:
Denied Keys:
Unaccepted Keys:
alt-minion-5
alt-minion-6
centos-minion-1
centos-minion-2
deb-minion-3
deb-minion-4
Rejected Keys:
Принять ключ конкретного миньона
[root@alt-master ~]# salt-key -l accepted
Accepted Keys:
[root@alt-master ~]# salt-key -a centos-minion-1
The following keys are going to be accepted:
Unaccepted Keys:
centos-minion-1
Proceed? [n/Y]
Key for minion centos-minion-1 accepted.
Принять ключи по маске идентификаторов
[root@alt-master ~]# salt-key -a 'deb*'
The following keys are going to be accepted:
Unaccepted Keys:
deb-minion-3
deb-minion-4
Proceed? [n/Y]
Key for minion deb-minion-3 accepted.
Key for minion deb-minion-4 accepted.
Показать только принятые ключи
salt-key -l accepted
Принять все предлагаемые ключи
salt-key -A
Удалить ключи по маске
salt-key -d 'deb*'
Удалить конкретный ключ
salt-key -d deb-minion-3
Удалить все ключи
salt-key -D
Для дальнейшей работы необходимо принять ключи миньонов (уверены в том, что в текущем окружении только проверенные узлы)
[root@alt-master ~]# salt-key -A
The following keys are going to be accepted:
Unaccepted Keys:
alt-minion-5
alt-minion-6
centos-minion-2
Proceed? [n/Y]
Key for minion alt-minion-5 accepted.
Key for minion alt-minion-6 accepted.
Key for minion centos-minion-2 accepted.
Таким образом должен получиться такой вывод
[root@alt-master ~]# salt-key -L
Accepted Keys:
alt-minion-5
alt-minion-6
centos-minion-1
centos-minion-2
deb-minion-3
deb-minion-4
Denied Keys:
Unaccepted Keys:
Rejected Keys:
Первый тест
[root@alt-master ~]# salt '*' test.ping
centos-minion-2:
True
deb-minion-3:
True
deb-minion-4:
True
centos-minion-1:
True
alt-minion-6:
True
alt-minion-5:
True
-------------------------------------------
Summary
-------------------------------------------
# of minions targeted: 6
# of minions returned: 6
# of minions that did not return: 0
# of minions with errors: 0
-------------------------------------------
Источники
https://www.youtube.com/watch?v=6zY41M2anrY
https://docs.saltproject.io/en/latest/contents.html