Учебники

SaltStack — соль через SSH

Salt выполняет команды в удаленной системе с помощью salt-minion . Это нормальное поведение. В некоторых случаях удаленная система может быть доступна только по протоколу SSH. Для этих сценариев Salt предоставляет возможность подключиться к удаленной системе только по протоколу SSH и выполнить команду через уровень SSH.

Соль SSH очень проста в настройке. Единственная необходимая конфигурация — указать данные удаленной системы в специальном файле, который называется файлом реестра . Этот файл обычно находится в / etc / salt / roster . В реестре будет вся информация об удаленной системе и о том, как мы можем к ней подключиться. Как только файлы реестра настроены, все команды Salt выполняются с использованием salt-ssh вместо команды salt.

Реестр файлов

Система Roster разработана специально для Salt SSH. Это разработано как подключаемая система. Единственная цель системы реестров — сбор информации об удаленной системе. Файл реестра — это файл конфигурации на основе YAML, содержащий информацию об удаленной системе в качестве целей . Эти цели представляют собой специальную структуру данных с предопределенным набором атрибутов. Файл реестра содержит одну или несколько целей, и каждая цель идентифицируется идентификатором соли .

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

<Salt ID>:
   host: <host name>
   user: <user name>
   passwd: <password of the user>

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

  • порт — номер порта SSH.

  • sudo — запускать ли команду через sudo.

  • sudo_user — имя пользователя sudo.

  • tty — true, если sudo включено.

  • priv — закрытый ключ.

  • timeout — тайм-аут для соединения SSH.

  • minion_opts — словарь опций миньонов .

  • thin_dir — каталог хранения целевой системы для солевых компонентов.

  • cmd_umask — umask для использования для команды salt-call.

порт — номер порта SSH.

sudo — запускать ли команду через sudo.

sudo_user — имя пользователя sudo.

tty — true, если sudo включено.

priv — закрытый ключ.

timeout — тайм-аут для соединения SSH.

minion_opts — словарь опций миньонов .

thin_dir — каталог хранения целевой системы для солевых компонентов.

cmd_umask — umask для использования для команды salt-call.

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

web:
   host: 192.168.2.1
   user: webuser
   passwd: secret
   sudo: True   
db:
   host: 192.168.2.2

Развертывание ключей SSH

Salt SSH сгенерирует пары открытого и закрытого ключей по умолчанию для входа в систему SSH. Путь по умолчанию будет /etc/salt/pki/master/ssh/salt-ssh.rsa. Этот ключ может быть развернут в удаленной системе с помощью команды ssh-copy-id, как показано ниже.

ssh-copy-id -i /etc/salt/pki/master/ssh/salt-ssh.rsa.pub user@web.company.com

Выполнить команду

Выполнить команду salt так же просто, как изменить команду salt cli на salt-ssh, как показано ниже.

salt-ssh '*' test.ping

Команда Raw Shell

Salt SSH предоставляет опцию (-r) для выполнения необработанной команды в удаленной системе, минуя солт-модуль и функции.

salt-ssh '*' -r 'ls'

Таргетинг с помощью соли SSH

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