Обновление и восстановление модуля
Резервное копирование модуля PrimeCast перед изменениями, обновление primecast-osd, откат OSD и агента и проверка после восстановления.
Любое обновление модуля начинается с резервной копии и заканчивается полной проверкой. Ниже — регламент копирования, обновление primecast-osd и порядок отката после неудачного обновления.
Резервная копия перед изменением
Перед любым обновлением:
STAMP="$(date +%Y%m%d-%H%M%S)"
sudo install -d -m 700 "/var/backups/primecast/$STAMP"
sudo cp -a /etc/primecast "/var/backups/primecast/$STAMP/"
sudo cp -a /usr/local/bin/primecast-agent "/var/backups/primecast/$STAMP/"
sudo cp -a /usr/local/lib/primecast-osd "/var/backups/primecast/$STAMP/"
sudo cp -a /etc/systemd/system/primecast-*.service "/var/backups/primecast/$STAMP/"
Проверьте:
sudo find "/var/backups/primecast/$STAMP" -maxdepth 3 -type f -ls
Что записать в карточку изменения
- дата и время;
- серийный номер устройства;
- текущая версия агента;
- изменяемые файлы;
- причина;
- резервная копия;
- план проверки;
- способ отката;
- ответственный.
Обновление OSD
Локальная проверка исходника
cd device/osd
python3 -m unittest -v
python3 primecast_osd.py \
--png /tmp/primecast-osd.png \
--demo-state online
python3 primecast_osd.py \
--png /tmp/primecast-osd-access.png \
--view access \
--demo-state online
Зависимости
sudo apt-get install -y --no-install-recommends \
python3-pil python3-spidev python3-gpiod
Установка
sudo install -d -m 755 /usr/local/lib/primecast-osd
sudo install -m 755 primecast_osd.py \
/usr/local/lib/primecast-osd/primecast_osd.py
sudo install -m 644 primecast-osd.service \
/etc/systemd/system/primecast-osd.service
sudo systemctl daemon-reload
sudo systemctl restart primecast-osd
Проверка
python3 -m py_compile \
/usr/local/lib/primecast-osd/primecast_osd.py
systemctl status primecast-osd --no-pager
sudo journalctl -u primecast-osd -n 100 --no-pager
Проверьте вручную:
- главный экран;
- все направления джойстика;
- включение/выключение стрима;
- список сетей;
- изменение видео;
- ключ и пароль;
- двойное подтверждение перезагрузки.
Восстановление после неудачного обновления
Откат OSD
sudo systemctl stop primecast-osd
sudo install -m 755 /PATH/TO/BACKUP/primecast_osd.py \
/usr/local/lib/primecast-osd/primecast_osd.py
sudo install -m 644 /PATH/TO/BACKUP/primecast-osd.service \
/etc/systemd/system/primecast-osd.service
sudo systemctl daemon-reload
sudo systemctl start primecast-osd
Откат агента
sudo systemctl stop primecast-agent
sudo install -m 755 /PATH/TO/BACKUP/primecast-agent \
/usr/local/bin/primecast-agent
sudo cp -a /PATH/TO/BACKUP/agent.json \
/etc/primecast/agent.json
sudo systemctl start primecast-agent
После отката
- проверить статус;
- проверить журналы;
- проверить HDMI;
- проверить сеть;
- выполнить реальный просмотр;
- зафиксировать откат в карточке изменения.
Серверный регламент обновления и критерии отката платформы описаны в разделе Сервер, безопасность и обновления.