Сервер управления конфигурацией Puppet позволяет задавать и контролировать автоматическое обновление или откат отдельных модулей и системы в целом до заданной версии.
Управление системой централизованного обновления осуществляется при помощи пакета artix-upgrade-system2
. Работа модуля позволяет обеспечить высокий уровень надежности и минимизировать риски благодаря разделению процессов загрузки и установки пакетов. Пакет artix-upgrade-system2
полностью контролирует загрузку и установку, а при возникновении сбоев программы проверяет корректность исполнения обеих операций и завершает их должным образом.
Настройками пакета artix-upgrade-system2
предусмотрено ограничение скорости скачивания обновлений. Время для начала загрузки обновлений на кассе выбирается случайным образом в пределах определенного интервала. Такие настройки позволяют исключить возможность высокой нагрузки на сеть.
Настройки периодичности выхода на связь с Puppet задаются в конфигурационном файле /etc/puppet/puppet.conf
в секции [agent]
.
Наименование | Тип данных | Возможные значения | Описание | Примечания |
---|---|---|---|---|
runinterval | строковый | Время в секундах выхода на Puppet сервер | Может задаваться в:
| |
splay | логический |
| Спать перед первым выходом на связь сервером |
По умолчанию |
splaylimit | строковый | Максимальное время задержки перед первым запуском агента при включенном splay | Может задаваться в:
По умолчанию используется |
... [agent] ... runinterval = 10 splay = false splaylimit = 7200 ... |
puppet agent --configprint runinterval |
Полный перечень настроек можно найти на сайте Puppet. |
Для обновления через Puppet вручную необходимо выполнить команду:
puppet agent -t |
Для работы сервиса Puppet в фоновом режиме необходимо:
Создать файл:
touch /etc/default/puppet |
Настроить периодический выход на связь с Puppet в конфигурационном файле /etc/puppet/puppet.conf
.
Выполнить команды:
systemctl enable puppet systemctl start --no-block puppet |
После перезагрузки кассового ПО сервис Puppet продолжит свою работу. |
Механизм обновления программного обеспечения построен таким образом, чтобы минимизировать время простоя кассового узла. Экономия времени на выполнение обновления достигается за счет того, что обновление ПО производится только после загрузки всех требуемых модулей на кассу.
Обновление программы выполняется в четыре этапа:
Обновление/откат до заданной версии пакета выполняются по определенному алгоритму:
В файле /etc/apt/sources.list.d/artix.list
указывается номер сборки, до которой требуется обновиться/откатиться:
deb http://update.artix.su/bionic artix-4.6.244-3 artix main contrib |
Для получения информации о новых/обновлённых пакетах выполняется команда:
aptitude update |
Необходимая версия пакета artix-upgrade-system2
устанавливается командой aptitude install artix-upgrade-system2=версия-номер_сборки
, где версия и номер сборки должны совпадать с версией и номером сборки, указанными в /etc/apt/sources.list.d/artix.list
.
aptitude install artix-upgrade-system2=4.6.244-3 |
При установке пакета artix-upgrade-system2
на кассе создается директория /linuxcash/cash/data/upgrade-system
, в которой будут размещены следующие файлы:
artix-packages.version
– включает список всех пакетов в сборке, до которой необходимо обновиться/откатиться;artix-packages.instlist
– включает список пакетов с номерами версий, которые были загружены на кассу;new-install
– файл-флаг, который необходимо создать для того, чтобы началась загрузка пакетов;downloaded
– файл-флаг, будет создан после загрузки новых версий пакетов;status.code
– будет создан после загрузки пакетов, отражает информацию о статусе загрузки/установки пакетов в виде соответствующего кода;status.text
– будет создан после загрузки пакетов, отражает информацию о статусе загрузки/установки пакетов в виде текста.В директории /linuxcash/cash/data/upgrade-system
создается файл-флаг с именем new-install
.
touch /linuxcash/cash/data/upgrade-system/new-install |
В конфигурационный файл /linuxcash/cash/conf/artix-packages.list
добавляется список пакетов, которые будут установлены при обновлении. Запись выполняется в формате: одна строка – один пакет. Пакеты указываются без версий.
artix-pos artix45-nes2 |
/linuxcash/cash/bin/artix-upgrade.sh
. /linuxcash/cash/conf/artix-upgrade.conf
.runsleep
– интервал времени в минутах, в котором случайным образом задается начало обновления;download_limit = 25
– ограничение пропускной способности при скачивании обновлений, в кБ/с.Касса перезапускается, после чего выполняется установка пакетов.
Крупные торговые сети устанавливают регламентные процедуры для выполнения обновления кассовых программ в магазинах. Кассовое ПО Artix настроено таким образом, чтобы уведомлять пользователя о наличии доступных обновлений.
Для оповещения об обновлении и задания действия используется файл /linuxcash/cash/data/tmp/notification.json
. Он представляет собой файл формата json
, создаваемый модулем artix-upgrade-system2
, после скачивания всех необходимых пакетов.
{ "message": "Доступны обновления", "action": "restart" } |
В зависимости от того, в каком состоянии находится кассовое ПО в момент появления возможности обновления, предусмотрено разное поведение программы при появлении сообщения:
Файл |