SaltStack - файловый сервер Salt

Файловый сервер Salt - это сервер ZeroMQ без сохранения состояния. Он встроен в мастер соли. Файловый сервер Salt используется для передачи файлов от мастера к миньонам. Он содержит разные модули. В этой главе давайте разберемся с файловым сервером соли, его конфигурацией, модулями, относящимися к файловому серверу соли, как получить доступ к файловому серверу соли в Python и т.д.

Бэкэнд файлового сервера

Бэкэнд файлового сервера позволяет файловому серверу Salt действовать как прозрачный интерфейс для другого файлового сервера, такого как локальная файловая система, система контроля версий Git и т. Д.

Бэкэнд файлового сервера Git можно включить, используя следующую конфигурацию в главном файле.

fileserver_backend:
   - git

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

fileserver_backend:
   - roots
   - git

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

Локальная файловая система

Для использования этой системы мы должны использовать следующий код.

file_roots:
   base:
      - /srv/salt/prod

Файловая система Git

Для использования этой системы мы должны использовать следующий код.

gitfs_remotes:
   - https://github.com/sample/sample1.git

Запрос файлов

У Salt есть возможность запрашивать файлы для определенных сред.

salt://path/to/file?saltenv = base

Здесь среда определяется с помощью параметра root.

Конфигурация файлового сервера

Файлы Salt могут быть размещены во многих корневых каталогах, и к ним можно получить доступ, указав путь к файлу и среду для поиска. Отдельные среды могут охватывать несколько корней каталогов.

Окружающая обстановка

Среда по умолчанию - базовая. Эта среда определена и используется для загрузки файлов, когда не указана другая среда.

file_roots:
   base:
      - /srv/salt/base

Вы также можете использовать несколько сред, как показано в приведенном ниже коде.

file_roots:
   base:
      - /srv/salt/base
   dev:
      - /srv/salt/dev
      - /srv/salt/base

Модуль CP

Модуль CP - это основной модуль для управления Salt file server. Вsalt-cp Команда также может использоваться для распространения файлов, представленных файловым сервером Salt.

ПОЛУЧИТЬ ФАЙЛ

В cp.get_fileфункцию можно использовать на миньоне для загрузки файла с мастера. Он определяется, как показано в следующем блоке кода.

salt '*' cp.get_file salt://vimrc /etc/vimrc

Вышеупомянутая команда инструктирует всех миньонов Salt загрузить vimrc файл и скопируйте его в /etc/vimrc.

Включить шаблон

Вы можете включить опцию шаблона в get_file следующим образом:

salt '*' cp.get_file "salt://vimrc" /etc/vimrc template = jinja

Применить сжатие

Чтобы использовать сжатие, используйте gzipименованный аргумент. Допустимые значения - целые числа от 1 до 9, где 1 - минимальное сжатие, а 9 - максимальное значение.

Команда определяется следующим образом -

salt '*' cp.get_file salt://vimrc /etc/vimrc gzip = 5

GET_DIR

В cp.get_dirфункция может использоваться на миньоне для загрузки всего каталога с мастера. Это определено в следующем блоке кода.

salt '*' cp.get_dir salt://etc/mysql /etc

В cp.get_dirподдерживает аргументы рендеринга шаблонов и сжатия gzip. Если хотите, можете назначить.

Модуль FILECLIENT

Salt предоставляет модуль python, который помогает получить доступ к файловому серверу соли. Вsalt/fileclient.py Модуль используется для настройки связи миньона с мастером.

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

import salt.minion
import salt.fileclient

def get_file(path, dest, saltenv = ‘base'):
   client = salt.fileclient.get_file_client(__opts__)
   return client.get_file(path, dest, true, saltenv)

Вот,

  • opts доступен, когда модуль запущен в солевой среде. В противном случае мы должны предоставить путь конфигурации -/etc/salt/minion.

  • path относится к пути к исходному файлу на файловом сервере соли.

  • dest относится к пути назначения файла.

  • saltenv относится к окружающей среде

В следующей главе мы поймем, как использовать Git как файловый сервер.