NSG - Примеры конфигурации: удалённый рестарт банкомата
Оборудование для сетей передачи данных
+7 (495) 727-1959

Удалённый рестарт банкомата

Силовая управляемая розетка NSG SPC–2 для управления электропитанием и рестарта банкоматов

Устройство NSG–1820MC, NSG–700/4AU установлено в банкомате и используется, помимо своего основного назначения, для перезагрузки банкомата по питанию в случае сбоев его программного обеспечения. Для управления используется силовая розетка NSG SPC–2i, подключённая к порту 1–Wire.

Конфигурация порта NSG

port                        
: 1-wire                    
: : device                  
: : : swt2-3AC10D0100000054 
: : : : type = "spc2i"

Узел swt2-3AC10D0100000054 создаётся автоматически при помощи команды .port.1-wire.autoconfig и соответствует уникальному идентификатору устройства 1–Wire. Тип устройства необходимо установить вручную для того, чтобы обеспечить возможность чтения/записи в устройство и корректное представление его состояний "вкл/выкл". Управление розетками производится командами в узлах .port.1-wire.device.swt2-3AC10D0100000054.circuit.1 и circuit.2, соответственно. Для управления можно использовать любые штатные средства удалённого доступа к устройству: HTTP/HTTPS, SSH, Telnet, а также локальную консоль.

Выделенный пользователь для управления розеткой

Для удобства эксплуатации может быть целесообразно создать в системе отдельного пользователя с ограниченными правами, чтобы дежурный оператор мог в любое недоброе время суток войти на устройство NSG и перезагрузить банкомат, не имея при этом возможности испортить что-либо в конфигурации устройства.

system                      
: users                     
: : texnik                  
: : : scheme                
: : : : rozetka-bankomata   
: : : : : @help	= "Upravlenie rozetkoi pitaniya bankomata"
: : : : : @link	= ".port.1-wire.device.swt2-3AC10D0100000054.circuit.1"

Пароль пользователя необходимо установить командой .system.users.texnik.password . При входе в систему пользователь texnik будет видеть только команды управления первой розеткой, остальная конфигурация будет для него недоступна. Более радикальный вариант:

system                      
: users                     
: : texnik                  
: : : scheme                
: : : : restart-bankomata   
: : : : : @help	= "Restart bankomata po pitaniyu"
: : : : : @link	= ".port.1-wire.device.swt2-3AC10D0100000054.circuit.1.drop"

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

Управление розеткой из скрипта

Банкомат "виснет" настолько часто, что имеется необходимость контролировать его и, при необходимости, перегружать автоматически, не дожидаясь звонков пользователей в службу поддержки. В данном примере для этого используется штатная функциональность netping; 192.168.1.2 IP-адрес банкомата.

services                    
: netping                   
: : check-bankomat          
: : : adm-state = "up"
: : : destination = "192.168.1.2"
: : : failure-script = "nsgsh -q .port.1-wire.device.swt2-3AC10D0100000054.circuit.1.drop"
: : : interval = 600
: : : retry = 3
: : : start-delay = 300

Большой интервал времени срабатывания netping (3×10 мин) выбран здесь для того, чтобы исключить ложные срабатывания при штатном выключении банкомата на время обслуживания, инкассации и т.п.

Примечание. Процедура ping проверяет работоспособность только ОС банкомата в целом и её стека IP, но не прикладного ПО. Для более достоверного контроля желательно использовать возможность установления TCP-соединения с прикладным ПО банкомата, если таковая имеется.

Управление розеткой с помощью SMS

Рассматривается ситуация, когда дежурный администратор, отвечающий за работу банкомата, может находиться не на своём рабочем месте (на выезде на другую площадку, в отпуске и т.п.) и не иметь в данный момент доступа к устройству NSG через Интернет (по соображениям безопасности или техническим). В этом случае может быть использовано управление устройством NSG при помощи SMS (при условии, что оно настроено заранее). Конфигурация обработчика SMS:

port
: m1
: : sms-handler
: : : mode = text
: : : macros
: : : resetThisPoopyATM
: : : : script = "nsgsh .port.1-wire.device.swt2-3AC10D0100000054.circuit.1.drop;"

На смартфоне администратора используется приложение NSG SMS shell для Android с дружественным графическим интерфейсом. После загрузки меню приложения с устройства NSG оно будет содержать единственный пункт ResetATM без параметров. Чтобы осуществлять управление и с простейшего телефона, который поддерживает только отправку текстовых SMS, удобнее выбрать для макрокоманды более короткое и легко запоминающееся имя, например, r.


Дополнительные замечания:

Возможно также управление розеткой из программ и скриптов, работающих на стороннем компьютере. Для этого необходимо:

  1. Настроить на устройстве NSG доступ по SSH (рекомендуется в любом случае)
  2. Сгенерировать ключи RSA для клиента SSH на сторонней машине и поместить публичный ключ на устройство NSG в файл /root/.ssh/authorized_keys
  3. Выполнить на сторонней машине команду вида
        ssh root@x.x.x.x "nsgsh -q .port.1-wire.device.swt2-3AC10D0100000054.circuit.1.drop"
    где x.x.x.x — IP-адрес устройства NSG

Аналогичным образом можно удалённо изменять любые другие настройки и исполнять команды на устройстве NSG со стороннего компьютера.