Page tree
Skip to end of metadata
Go to start of metadata

Немного теории

На базе GenieACS можно реализовать механизм автоматического и массового обновления прошивки для различных случаев: первичное подключение CPE к сети и загрузка нужной прошивки, массовое обновление прошивки для контроля версий прошивок у конечных пользователей, это в конечном итоге экономит временной ресурс. В этой статье будут показаны примеры реализации автоматических обновлений.

Первоначально загрузите BIN файл прошивки на сервер в разделе Admin  >> Files и нажмите New.

В пункте Type выберете 1 Firmware Upgrade Image, пункты OUI, Product Class, Version можно оставить пустыми, в пункте File выберете нужный файл и нажмите Save.

Далее добавьте скрипт с указанием на название файла прошивки, для этого перейдите в раздел Admin >> Provisions >> New, вставьте скрипт и сохраните. Этот скрипт загрузит и вызовет обновление прошивки.

Скрипт загрузки прошивки
declare("Downloads.[FileType:1 Firmware Upgrade Image]", {path: 1}, {path: 1});
declare("Downloads.[FileType:1 Firmware Upgrade Image].FileName", {value: 1}, {value: "SNR-CPE-ME2-Lite-1.9.3.2506211137.bin"}); // SNR-CPE-ME2-Lite-1.9.3.2506211137.bin замените на название вашего файла
declare("Downloads.[FileType:1 Firmware Upgrade Image].Download", {value: 1}, {value: Date.now()});

Создание предустановки для автоматического обновления.

Создайте предустановку в Admin >> Presets и нажмите кнопку New. Задайте нужные вам параметры для предустанови, дополнительно объясним логику данного примера:

  1. Name - здесь задаётся имя для предустанови. 
  2. Channel - используется для логической группировки предустановок. При сбое одной из предустановок на канале, все другие предустновки на этом канале временно перестанут работать. 
  3. Weight - предустановки с большим весом имеют приоритет к выполнению, выставляйте вес в зависимости от логики работы ACS.
  4. Schedule - задается время работы предустановки в cron формате. Обновление CPE приводит к прирыванию его работы, поэтому обновления лучше проводить в ночное время, для примера задано время "* 4 * * *", то есть предустановка будет работать с 4:00 - 4:59 каждый день.
  5. Events - предустановка будет выполняться при получении указанного сценария. В логике примера используется событие "1 BOOT", которое CPE отправляет на ACS при загрузке системы. Это событие сложно объединить в одну логику с временем указанным выше, ведь обычно CPE в ночное время не перезагружают и не проводят работы по их установке. Поэтому можно изменить событие с "1 BOOT" на "M Reboot", это событие происходит при перезагрузке со стороны ACS, далее перезагружаем через ACS нужны CPE, поступает код события "M Reboot" и начинается загрузка и обновление прошивки. Вариант с использованием "1 BOOT" и пустым значение времени полезен при работе сотрудника провайдера у конечного потребителя: сотруднику не нужно думать какую прошивку нужно загружать, он просто подключает CPE, приходит код события "1 BOOT" и происходит обновление.
  6.  Precondition - здесь задаются условия работы предустановки. В примере версия ПО не равна 1.9.3.2506211137 и значение Tags.SNR-CPE-ME2-Lite не пустое, если более человеческим языком, то будет обновлён каждый SNR-CPE-ME2-Lite у которого версия прошивки отличается от 1.9.3.2506211137.
  7.  Provision - здесь выбираем скрипт с которым работает предустановка, он был создан ранее.
  8. Arguments - можно передать внешние параметры для предустановки, в этом примере не используется.

По аналогии с данным примером, можно построить логику автоматических обновлений для вашей сети, но стоит понимать, что это не быстрый процесс и требует долгого внедрения, технической наладки и тестов для корректной работы.


Ручное массовое обновление

С ручным обновлением дела обстоят проще. В разделе Devices отображаются CPE, которые успешно прошли авторизацию на ACS.

С помощью Filter выбираем нужные нам CPE, в примере это SNR-CPE-ME2-Lite. 

С помощью кнопки Push File выбираем загруженную на ACS прошивку, нажимаем Queue и Commit, после чего произойдет обновление прошивки на CPE c которыми было установлено соединение.



  • No labels