Публичное пространство
Глобальное обновление касс на TinyCore8 (PostgreSQL 11) инструментом Jenkins
- Инструмент предназначен для обновления касс в крупных торговых сетях.
- Для получения информации по обновлению этим инструментов обратитесь к вашему менеджеру.
Требования к обновлению
Внимание!
- Инструмент производит обновление касс только с версии СУБД PostgreSQL 9.4 на 11!
- Если на кассе установлена версия TinyCore 8.X.X + PostgreSQL 11, то инструмент не произведет обновление версии ОС на новые.
Обновление выполняется при соблюдении следующих требований:
- Смены на кассе закрыты.
- Отсутствуют неотправленные документы: чеки, Z-отчеты, внесения, изъятия.
- Кассовый модуль не находится в состоянии ожидания обновлений на следующую версию.
- На жестком диске кассы более 3Гб и более свободного пространства.
- Скорость внутренней локальности стабильна для передачи большого объема данных
Банковкий модуль АРКУС
- Перед основным процессом перехода на TinyCore8 согласуйте обновление процессинга АРКУС (АРКОМ) с банком.
- Банковский модуль работавший под TinyCore3 после обновления на TinyCore8 функционировать не будет!
Образ c инструментом обновления
Требования к инструменту
- Виртуальная машина в торговой сети магазина
- Установить инструмент можно на любой сервер SetCentrum CentOS7
- Для установки образа можно установить сервер SetRetail под CentOS7 согласно инструкции.
- Системные требования:
Свободное место на жестком диске 2Гб.
Количество ядер CPU = 2.
Объем оперативной памяти (RAM) = 2Гб минимум.
Доступ с сервера на котором развернут инструмент к:
Серверу SetCnetrum центрум и серверам магазинов по порту 5432 (порт PostgreSQL).
Доступ до касс по порту 22 (ssh).
- Доступ до касс по порту 5432 (порт PostgreSQL).
Установка
1. Загрузите файл скрипта установки jenkins-ansible-update_tc.sh в папку /root на сервер с CentOS7.
2. Загрузить файл можно с помощью сеанса WinSCP из SetConsole.
3. В разделе Сервер введите данные для подключения к серверу → нажмите .
Учетная записья для доступа загрузки:
- Логин: root
- Пароль: <уточните в службе поддержки CSI>
2. Выделите файл jenkins-ansible-update_tc.sh → нажмите клавишу F5 → назжмите .
3. Дождитесь окончания процесса копирования.
4. Подключитесь с помощью сеанса SSH к серверу:
5. Выполните команду для установки инструмента:
sh ./jenkins-ansible-update_tc.sh
6. Дождитесь окончания установки:
7. После окончания установки наберирте адрес в браузере http://XXX.XXX.XXX.XXX:8080
Настройка инструмента
1. Откройте веб-браузер → наберите адрес в формате http://XXX.XXX.XXX.XXX:8080 → введите логин и пароль → нажмите .
- Логин: tc
- Пароль: <уточните в службе поддержки CSI>
2. Кликните .
3. Кликните .
4. Прокрутите страницу до секции Глобальные настройки → введите в поле значение IP-адрес сервера SetCentrum, с которого будет производиться сборка IP-адресов касс → нажмите .
- Вводится IP-адрес сервера SetCentrum на котором располагается его база данных.
- Если серверное приложение и база данных сервера разделены, тогда вводится IP-адрес сервера баз данных.
- Используется IP-адрес только сервера SetCentrum.
5. Для получения уведомлений о статусе работ настройте параметры адреса электронной почты, с которого будут отправляться уведомления.
Прокрутите страницу до секции Extended E-mail Notification → введите в поле SMTP server адрес SMTP-сервера исходящих сообщений → нажмите .
6. В поле User Name введите адрес электронной почты или имя пользователя для SMTP-авторизации → в поле Password нажмите и введите пароль → нажмите .
7. Настройте адрес электронной почты на которую будут отправляться сообщения о статусе работ системы обновления.
Кликните в правом верхнем углу по названию пользователя .
8. Кликните .
9. В секции Адрес электропочты → В поле E-mail адрес введите адрес электронной, на который будут отправляться уведомления о статусе работ → нажмите .
10. Если у вас установлен пароль к базе данных СУБД PostgreSQL сервера SetCentrum не postgres
, тогда выполните его настройку.
Кликните .
11. Кликните .
12. Рядом с ссылкой кликните элемент → выберите пункт .
13. Нажмите .
14. ведите пароль от СУБД PostgreSQL сервера SetCentrum → нажмите .
15. Отобразится стандартное сообщение Jenkins, тем не менее данные для подключения к серверу СУБД PostgreSQL SetCentrum будут сохранены.
Обновление
Внимание!
Обновление выполняется в строгой последовательности по инструкции.
Последовательность
- Шаг 1. AllGetCashInfo - Выполняется сбор информации по IP-адресам касс с сервера SetCentrum.
- Шаг 2. DeliveryUpdate - Загрузка патча обновления на доступные кассы в сети.
- Шаг 3. InstallUpdate - Запуск команды на обновление касс.
Основные шаги
Откройте веб-браузер → наберите адрес в формате http://XXX.XXX.XXX.XXX:8080 → введите логин и пароль → нажмите .
- Логин: tc
- Пароль: <уточните в службе поддержки CSI>
Шаг 1. AllGetCashInfo - получение списка касс
1. Запустите проверку списка IP-адресов касс на основании данных из SetCentrum → кликните в строке с проектом AllGetCashInfo.
2. Запуститься задание (job) для бора информации об IP-адресах касс сервера SetCentrum.
Кликните на запущенное задание или на проект AllGetCashInfo.
3. В секции Stage View отобразится время обработки задания.
4. Кликните по заданию.
5. Если задание выполнено успешно, тогда оно отобразиться индикатором следующего вида:.
Кликните на один из лог-файлов для просмотра информации:
Лог-файл | Назначение | Описание |
---|---|---|
error.log | Отображаются ошибки при попытке обработки информации сервера SetCentrum: | При некорректном IP-адресе SetCentrum, отобразится ошибка подключения. |
Если введен неверный пароль к СУБД PostgreSQL, отобразится ошибка подключения. | ||
Если недоступен сервер(а) SetRetail, отобразится, о том к каким из них невозможно подключиться, тогда появится запрос:
| ||
hosts.log | Отобразиться список собранных IP-адресов касс или серверов. |
По результатам выполнения задания будет отправлено сообщение на почту:
Шаг 2. DeliveryUpdate - получение списка касс
1. Следующим шагом запустите доставку патча обновления на кассы.
Кликните Jenkins.
3. Запустите доставку патча на кассы → кликните в строке с проектом DeliveryUpdate.
4. Введите в поле shopNumber номера магазинов через запятую, или, если требуется обновить кассы на всех значение all
(Все значения вводятся без кавычек) → нажмите .
5. Запустится задание на доставку патчей, во время выполнения которого, система будет проверять готовность касс к обновлению. Дождитесь окончания процесса.
Если какие-то кассы будут недоступны, тогда нажмите на.
Прокрутите до конца страницы → кликнитке .
Отобразаится список недоступных касс:
- Если требуется повторить доставку, тогда оставьте список касс → нажмите .
- Если на данный список касс не требуется повторной доствки, тогда удалите его → нажмите .
Логика работы DeliveryUpdate:
- На вход введены индексы магазинов или параметр для всех.
- Осуществляется выборка касс по фильтру из файла который сформирован заданием.
- Далее осуществляется выборка разрезе каждого отдельного магазина.
- Внутри списка касс (отсортированных по номеру кассы) магазина выбирается касса подходящая по следующим параметрам:
- Касса отвечает.
- Достаточно места на диске.
- Патч обновление уже есть на кассе.
- Если пункты 4.b. и 4.c. выполнены успешно, тогда мастер-кассой (касса с которой будет производиться загрузка обновлений на остальные кассы магазина) признается основной первая из ответивших касс
- Если только по одной - именно она.
- Если условие 4.с. не удовлетворен нигде, тогда мастер-кассой становится первая из ответивших с выполненным условием пунктом 4.b.
- Если условия в пунктах 4.a. и 4.b. не выполнены, тогда система повторяет попытку загрузки патча.
- На выбранные мастер-кассы (касса с которой будет производиться загрузка обновлений на остальные кассы магазина) загружается файл обновления.
- Если доставка оборвалась в процессе загрузки, тогда попытка загрузки на мастер-кассу и все остальные повторяется.
- После доставки файла обновления все кассы магазина пытаются синхронизировать с мастер-кассой.
- Если во время этой попытки касса не доступна, или возникла какая-то ошибка, тогда повторяется попытка загрузки все кассы магазина.
- После попытки доставки на мастер-кассы и вторичные для магазинов, создается лог-файл с результатами доставки.
- В процессе доставки, в случае недоступности некоторых касс пользователю выдается запрос, в котором он, может удалить из списка, те кассы, что нужны (Например: есть точная информация, что данной кассы на магазине нет, но по какой-то причине её намеренно оставили в активных).
- Если пользователь течение часа не ответил на запрос, тогда автоматически прекращается ожидание ответа от него и начинается попытка с тем списком, который отдавался в форму на редактирование.
- Если после очередной попытки доставки список касс для обновления оказывается пустым, тогда задание считается выполненным (в том числе и при ручном удалении касс из списка пользователем), и доставка считается успешно осуществленной на все кассы.
11. По окончании процесса в секции Stage View отобразится итоговое время выполнения → кликните по заданию для просмотра подробной информации.
12. Если задание выполнено успешно, тогда оно отобразиться индикатором следующего вида:.
Кликните на один из лог-файлов для просмотра информации:
Лог-файл | Назначение |
---|---|
circulation_delivery_master/ansible.log | Лог-файл доставки обновления на мастер-кассы (1-я касса в списке с которой будет распространяться обновление на другие кассы одного магазина) с помощью средства выполнения сценариев Ansible. |
circulation_delivery_master/failedHosts.txt | Список всех мастер-касс, на которые не удалось осуществить доставку патча обновления. Результатом файла является обработка списка хостов с ошибкой из ansible.log |
circulation_delivery_slave/ansible.log | Лог-файл доставки обновления на всех касс, кроме мастер-кассы с помощью средства выполнения сценариев Ansible. |
circulation_delivery_slave/failedHosts.txt | Список всех касс, кроме мастер-кассы, на которые не удалось осуществить доставку патча обновления. Результатом файла является обработка списка хостов с ошибкой из ansible.log |
failedDelivery.txt | Общий список всех касс, на которые не удалось доставить патч обновления. |
readyToUpdate.txt | Общий список всех касс, готовых к обнолвению. |
retailsWithoutMasterCash.txt | Список серверов SetRetail, на которых не удалось создать мастер-кассу. |
Шаг 3. InstallUpdate - запуск обновления
1. Следующим шагом запустите обновление касс.
Кликните Jenkins.
2. Запустите обновление касс → кликните в строке с проектом InstallUpdate.
3. Если требуется ввести дополнительные IP-адреса касс для обновления, тогда заполните поле circulationHosts (каждый IP-адрес с новой строки).
Для запуска обновления нажмите .
4. Запустится задание на обновление касс. Дождитесь окончания процесса.
Логика работы:
- Осуществляется циклическая работа пока все кассы из списка не будут обновлены.
- Список касс для обновления формируется на основе результата Шага 2. DeliveryUpdate, и берется из этой работы автоматически, но только из последней удачно-завершенной задачи с индикатором .
- Во время запуска процесса обновления на осуществляется следующая последовательность шагов:
- Проверка доступности кассы в сети.
- Требуется ли обновлять кассу или нет.
- Если касса не требует обновления, тогда она считается успешно обновленной.
- В случае если касса требует обновления, тогда запускается механизм проверки возможности обновления в текущий момент.
- Когда касса готова к обновлению, выполняются шаги по проверке на кассе:
- Смена закрыта
- Достаточно свободного места на диске
- На кассе нет незавершенных обновлений для кассового модуля
- Касса в рабочем режиме.
- При положительно-выполненных условиях пунктах 4.с.i, 4.с.iI, 4.с.iii, 4.с.iv, на кассу загружается файл, который запускает обновление, после чего, касса перезагружается полностью.
- После перезагрузки касса еще раз проверяет все параметры 4.с.i, 4.с.iI, 4.с.iii, 4.с.iv, и при положительном результате, запускается скрипт обновления.
- Если не выполнены пункты или один из них (4.с.i, 4.с.iI, 4.с.iii, 4.с.iv), позволяющие обновиться, попытка обновления повторяется.
- Пользователю отправляется список касс для редактирования с ожиданием ввода 1 час, после чего, система будет счиать, что пользователь нажал "Повторить обновление".
- Все работы обновления и доставки ориентированы на достижение максимального результата.
5. После того, как команда на обнолвение будет выполнена по всем кассам, на электронный адрес будет отправлено письмо с требованием дейтствий → кликните по ссылке Требуется действие.
Или кликните по активной работе:
Кликните .
6. В окне запроса будет предложено добавить еще кассы для обновления, но в данном случае, нажмите кнопку для проверки статуса обновления касс.
Запрос на ввод параметром и проверки статуса обновления будет появляться в система 1 раз в час и отправляться на электронную почту с требовнаием действий.
7. Начнется процесс проверки обновления касс. Если процесс обновления на кассах завершен успешно тогда, на электронную почту будет отправлено сообщение об успешном выполнении задачи:
Успешно-выполненная задача отобразится индикатором следующего вида:.
Кликните на один из лог-файлов для просмотра информации:
Лог-файл | Назначение |
---|---|
cashesCheckFailed.txt | Список касс, которые не удалось проверить. |
circulation_checkinging/ansible.log | Лог проверки касс Ansible. |
circulation_checkinging/failedHosts.txt | Список касс в результе проверки Ansible. |
circulation_update/ansible.log | Лог выполнения процесс обновления Ansible |
circulation_update/failedHosts.txt | Список касс по результатам выполения Ansible, на которых не удалось запустить обнолвние |
updatingCashes.txt | Общий список всех касс, на которых не удалось запустить обнолвние |
8. Обновление завершено.
Дополнительная информация
Настройка параметров безопасности для отправки писем через SMTP-сервер почтовой службы GMail (Google)
По умолчанию в учетной записи, которая использует движок GMail (корпоративная или частная), отключена возможность подключения любых веб-приложений для отправки почты, используя SMTP-сервер.
1. Войдите под своей учетной записью.
2. Перейдите по ссылке https://myaccount.google.com/u/2/lesssecureapps
3. Активируйте параметр "Ненадежные приложения, у которых есть доступ к аккаунту".
© 1994-2024, ООО «Кристалл Сервис Интеграция».
Все права защищены..