Немного линукса
Фирменные утилиты NSG Linux 2.1
Доступ к удалённому устройству и синхронизация конфигурации — nsgconfsync

Утилита nsgconfsync выполняет три функции, первая из которых необходима для двух других:

  1. Генерацию ключей для клиента SSH и передачу публичного ключа на указанный удалённый сервер SSH. Для этого используются стандартные утилиты ssh-keygen и ssh-copy-id. Таким образом, обеспечивается последующий доступ на удалённое устройство без ручного ввода пароля; это открывает путь для автоматизированного выполнения тех или иных операций на нём.
    Данная функция выполняется вручную один раз (или периодически для регулярной смены ключей) и может использоваться как с целью последующего импорта конфигурации с удалённого устройства на локальное, так и для иных задач: трансляции событий на подключённых датчиках и контроллерах, и т.п. Удалённым хостом может быть как устройство NSG, так и любое другое устройство со стандартным для Linux назначением директорий SSH.
  2. Чтение дерева конфигурации с удалённого хоста по SSH и его слияние с текущей конфигурацией локального устройства по установленным правилам. Предполагается, что данная функция применяется к двум однотипным и функционально идентичным устройствам NSG, например, основному и резервному серверам VPN. В этом случае администратор вносит изменения только на основном сервере (например, добавляет новых пользователей), а на резервных серверах выполняет данную процедуру (вручную или по расписанию) и копирует на них требуемые элементы конфигурации с основного.
  3. Копирование заданных файлов и директорий с удалённого устройства на локальное.

В командных оболочках NSG эти операции выполняются в узле .system.confsync. Для автоматического выполнения синхронизации из скриптов (по расписанию и т.п.) рекомендуется использовать данную утилиту напрямую, без обращения к nsgsh.

Формат командной строки:

nsgconfsync -k
nsgconfsync --keygen
nsgconfsync [username@hostname] [опции]

Опции для генерации и передачи ключа:

-k, --keygen
Сгенерировать пару ключей RSA путем вызова команды ssh-keygen -t rsa. На все последующие вопросы следует отвечать нажатием клавиши Enter.
-a, --append
Передать свой открытый ключ на указанный сервер. Для передачи ключа требуется ручной ввод пароля. Ключ помещается на сервере в директорию .ssh в стандарной домашней директории пользователя, указанного в строке вызова как username.
--home=директория
Домашняя директория пользователя на локальной машине. Из этой директории, а именно, из поддиректории .ssh в ней, берётся файл открытого ключа. Путь к директории указывается от корня её файловой системы. По умолчанию предполагается стандартная домашняя директория (~).

Опции для синхронизации конфигурации:

-i, --import=узел
Загрузить данный узел конфигурации с удалённого устройства. Допускается указание данной опции несколько раз.
-e, --exclude=узел
Исключить данный узел из загруженной конфигурации и восстановить его исходное состояние на локальном устройстве. Допускается указание данной опции несколько раз.
-f, --file=файл
Загрузить данный файл или директорию с удалённого устройства. Путь к файлу указывается от корня файловой системы. В последнем элементе пути (собственно имени файла или директории) допускается использование подстановочного символа *. Допускается указание данной опции несколько раз.
--excludefile=файл
Исключить файл или директорию из синхронизации. В последнем элементе пути (собственно имени файла или директории) допускается использование подстановочного символа *. Путь к файлу указывается от корня файловой системы. Допускается указание данной опции несколько раз.
ПРИМЕЧАНИЕ. Если на локальном устройстве существуют файлы с такими же путями/именами, как на мастер-устройстве, то они будут заменены. Если в локальных директориях есть файлы, которых нет на мастер-устройстве, то они останутся как есть и удалены не будут.
-s, --sync
Выполнить синхронизацию локальной конфигурации и узлов конфигурации, загруженных с мастер-устройства. Все расхождения изменяются в пользу конфигурации мастер-устройства.
-w, --write
Сохранить результирующую конфигурацию в энергонезависимой памяти устройства.
--apply=узел
Применить результирующую конфигурацию для данного узла. Допускается указание данной опции несколько раз.
--applyall
Применить результирующую конфигурацию для всех узлов, указанных в списках --import и --apply. (Если для какого-то узла не определена операция _apply, выдается предупреждение и продолжается работа далее по списку.) Поскольку операция _apply в некотором узле безусловно относится ко всем его внутренним узлам, то она будет выполнена, в том числе, и в узлах, которые включены в списки --exclude.
--force
Если в момент выполнения синхронизации на устройстве открыта сессия администратора, принудительно завершить её (возможна потеря несохранённых изменений) и перезапустить nsgconfsync с правами администратора, чтобы иметь возможность применять и сохранять новую конфигурацию. Рекомендуется при автоматическом вызове процедуры; при ручном выполнении синхронизации следует использовать опции --write и --apply в этой же строке вызова.
--script=скрипт
После завершения синхронизации выполнить указанный скрипт. Выполняется только при установленной опции --write и успешном завершении всех предыдущих операций.
-o, --output=файл
Путь/имя файла для вывода результатов.
-q, --quiet
Не выводить в журнал исходную локальную конфигурацию, принятую конфигурацию и результирующую конфигурацию. Сообщения о результате синхронизации и об ошибках выводятся в любом случае.
--sesnum=SID
Открыть для выполнения синхронизации существующую сессию с идентификатором SID на локальном устройстве. При ручном управлении и в пользовательских скриптах не используется.
--user=имя
Имя пользователя, с которым открывается локальная сессия администрирования устройства. По умолчанию, это имя пользователя, с которым была вызвана nsgconfsync из оболочки bash, т.е. root.

Общие опции:

-d, --daemon
Запустить nsgconfsync в режиме демона.
-h, --help
Вывод справки.

© Network Systems Group 2015–2024 Отдел документации