SaltStack - Использование MinionFS в качестве файлового сервера

В MinionFS- это специальный файловый сервер, предоставляемый Salt для миньонов, чтобы обмениваться файлами между ними. Файлы, обслуживаемые MinionFS, являются файлами, преднамеренно предоставленными миньонами. Чтобы поделиться файлами, Миньон должен выполнить шаги, указанные ниже.

  • Миньон-источник должен отправить файл мастеру соли, используя cp.push функция.

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

Включить отправку

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

file_recv: True

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

Отправка файлов

Миньоны могут отправлять файлы мастеру. Выполняетсяcp.pushфункция. Эта функция cp.push предоставляет простой механизм для отправки файлов миньоном с использованием идентификатора миньона.

salt 'minion-id' cp.push /path/to/the/file

Здесь идентификатор миньона используется для определения того, какой миньон отправляет файл. Эта команда сохранит файл в подкаталоге с именемminions под master's cachedir. Обычно путь - / var / cache / salt / master / minions.

Для миньона, m1 и файл - /var/log/mylog.txt, файл будет сохранен в - /var/cache/salt/master/minions/m1/var/log/mylog.txt.

Включить MinionFS

Чтобы включить MinionFS, просто добавьте minion в настройках серверной части файлового сервера, как показано в следующем блоке кода.

fileserver_backend:
   - roots
   - minion

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

salt://<minion-id>/path/to/pushed/file

Для миньона, m1 и отправляемый файл - /var/log/mylog.txt, отправляемый файл будет обслуживаться из salt: //m1/var/log/mylog.txt.

Эта minionFS может быть смонтирована в специальном каталоге, используя следующую конфигурацию. Он отделит файлы minionFS от других файлов и поможет в организации файлов minion.

minionfs_mountpoint: salt://minionfs

Для указанной выше конфигурации файл будет доступен под minionfs каталог как - salt: //minionfs/m1/var/log/mylog.txt

Дополнительные параметры MinionFS

MinionFS также предоставляет возможность включить / отключить доступность отправленных файлов от определенного миньона. Вариантыminionfs_whitelist, чтобы включить миньонов и minionfs_blacklist, чтобы отключить миньонов.

minionfs_whitelist:
   - webserver
   - develop*
   - ‘mail\d+.mysite.com'

minionfs_blacklist:
   - testing

В приведенной выше конфигурации все миньоны, кроме testing разрешено делиться файлом с помощью minionFS.

  • Webserver1

  • Миньоны, чьи идентификаторы соответствуют регулярному выражению, разрабатываются *

  • Миньоны, чьи идентификаторы соответствуют регулярному выражению mail\d+.mysite.com.

  • Testing

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