Хост инкассации Ликард — это «узкоспециализированное ПО, не имеющее аналогов для Linux, непригодное.....», требовательное к самым разнообразным мелочам. Не достаточно просто поднять XP на виртуальной машине, чтобы можно было вернуть потерянные часы и ночи простоя системы из-за включенной голой небезопасной Windows; держать нечто отдельное для выполнения этих задач в своём тесном home-office, населённом малолетними диверсантами, не приемлимо. Занимательное действо, разыгравшееся под катом как-бы говорит нам о степени прогресса в развитии и повышении дружественности дистрибутива за последний год, и высокой пригодности его для решения подобных задач…
… Не мог же я один наделать столько шума?" (с) Пятачок
Официальную версию можно почерпнуть здесь
Кратко: сеть POS-терминалов на АЗС в странах СНГ и Восточной Европы, развёрнутая для обслуживания фирменных EMV-карт Ликард. Клиенты компании — по большей части крупные грузоперевозчики (дальнобойщики) и нефтегазовый сектор. Терминалы работают в offline-режиме, обмениваясь данными с центрами сбора и передачи данных компании несколько раз в сутки по каналу GPRS, Ethernet либо проводному телефону. Процесс обмена информацией POS-терминала и ЦСиПД — называется инкассацией, а ЦСиПД — хостами инкассации.
Почти везде хосты инкассации расположены в специально оборудованных помещениях, в офисах компании, на выделенных под инкассацию серверах. Но в Восточной Сибири Ликард чаще всего представлен одним сотрудником, осуществляющим инкассацию терминалов, техподдержку операторов АЗС и прочее в режиме home-office, автономно. Необходимое ПО для осуществления инкассации развёрнуто на его домашнем компьютере. Изменений в ситуации не предвидится: объём покупок по топливным картам на порядок меньше, чем даже в Западной Сибири, получаемая с них прибыль (всего 3% от каждой покупки) не покроет затрат на содержание даже небольшого офиса.
Хост инкассации представляет собой композицию специально сконфигурированного железа, закрытого и устаревшего ПО: комплекса обработки входящей и генерации исходящей «почты» терминалов и комплекса инкассации терминалов (загрузка обновлённых справочников из почты, выгрузка файлов транзакций).
Железо — внешний dial-up модем (например, мой Zyxel U-1496E для надёжного соединения на самых зашумлённых линиях), 3G-брелок для инкассации терминалов через GPRS и Ethernet c подключенной услугой внешнего статического IP-адреса (# Huawei E1550), COM-порт (что в настоящее время редкость) для подключения внешного модема или коммуникационного кабеля терминала.
Основа первого комплекса — Microsoft Office 97 (в частности его компонент Access 97) и операционная система Microsoft Windows 2000 (либо XP с доработками реестра). Причём MSO97 — строго специальным образом обновлённый, более современные версии неправильно работают с написанной ещё в 97-м году на VBA базой данных, переработка её с чистого листа в более современном пакете — по неизвестным причинам считается головной организацией делом пустым.
Основа второго комплекса — созданный центральным отделом разработки Хост Обмена Информацией (сокращённо ХОИ), заменивший ранее использовавшийся Prowin2k. ХОИ состоит из коммуникационного, управляющего и конфигурационного приложений. Коммуникационное — консольное приложение без интерфейса, управляющее — собственно интерфейс к нему, позволяющий наблюдать процесс инкассации и управлять коммуникационным приложением. Конфигурационное приложение — редактор ini-файла настроек, подхватывающегося коммуникационным приложением при старте. Все 3 части написаны под windows, хотя такое подразделение предполагает возможность легкого портирования на Linux.
В последние годы, при замене и модернизации железа хостов инкассации возникали различные проблемы с MSO97 — из-за более 1Gb ОЗУ, слишком больших разделов на жёстком диске. Доставляет проблем и Windows, особенно в свете подключения к Интернету через внешний статический IP-адрес — как минимум приходится закрывать ненужные порты и работать через Outpost Firewall. Но главное — всё это развёрнуто на домашнем компьютере, владельцу которого вовсе не доставляет радость работа в устаревшей и небезопасной системе. Поставленная в другой раздел винчестера Ubuntu, используемая теперь как основная система, закрывает необходимость работы с Windows не полностью. На 3 часа в день приходилось перезагружаться под Windows для приёма «почты», инкассации терминалов и создания «почты» с полученными транзакциями.
Свести общение с Windows к нулевому значению, решая задачи Home- и Office- в операционной системе Ubuntu. Хотя опыт интенсивного использования Linux в настоящий момент всего 9 месяцев, я уже немного освоился и перевёл примерно 70ПК на работе (3 компьютерных класса и около 10 «офисных» машин). Уже через несколько месяцев использования Ubuntu в качестве основной системы ежедневные перезагрузки с вырыванием 3-х плодотворных часов из жизни порядком надоели. То обстоятельство, что половина документов, логов, истории и почты находится под одной XP, а половина — под Ubuntu, вызывало большой дискомфорт. Некрасиво…
Начались эксперименты с открытой виртуальной машиной от Oracle, доступной из репозитория Ubuntu. Малоинтересная часть (банальная установка WinXP на созданный виртуальный диск) не будет описана здесь. Следующая, более интересная часть ниже.
Так, наступив на все грабли и выжив, моя инкассация стала проходить строго по регламенту)
Значительно уменьшенные размеры еженедельных обновлений (зоопарка ПО и мусора пакетов в новой системе нет, т.к. с необходимым набор я для себя уже определился), успешно скопированные почтовая база и нужные настройки ПО из старого /home, более мелкие плюсы — отдельного упоминания не заслуживают (вроде прекратившихся зависаний Х-ов посреди работы). Виртуальный диск с ХОИ перенесён в /home и отпавшая необходимость автомонтирования ntfs-разделов при загрузке…
За год, с релиза 9.10 по релиз 10.10 сделано очень много, Ubuntu стала на порядок дружественнее, в самых разных проявлениях, я гарантирую это)..
Цели достигнуты, задачи выполнены, интерес приобретён)… Даже в бОльшем объёме и лучшем качестве, нежели предполагалось ранее. Так, VDI-образ винта с хостом можно безболезненно переносить на самое разное железо и ОС, не имея каждый раз сношений с установкой нужного софта, первичным его конфигурированием и прочими утехами windows-юзера… Работа под белымвнешнимстатическим IP стала безопаснее для хоста, ибо кроме как по открытому руками 8888-му порту и некоторым общеизвестным — доступа нет… Проблемы Google-Earth и прочего софта, кривого в своих последних linux-версиях, /me также не особо уж трогают — они поселились в виртуальной машине, хотя ради них одних поднимать её не стал бы)…
Собственно результат :)
Респект neonxp за корректорские правки)
P.S.: эх, плакала моя к..)
… Не мог же я один наделать столько шума?" (с) Пятачок
1. Что такое Ликард?
Официальную версию можно почерпнуть здесь
Кратко: сеть POS-терминалов на АЗС в странах СНГ и Восточной Европы, развёрнутая для обслуживания фирменных EMV-карт Ликард. Клиенты компании — по большей части крупные грузоперевозчики (дальнобойщики) и нефтегазовый сектор. Терминалы работают в offline-режиме, обмениваясь данными с центрами сбора и передачи данных компании несколько раз в сутки по каналу GPRS, Ethernet либо проводному телефону. Процесс обмена информацией POS-терминала и ЦСиПД — называется инкассацией, а ЦСиПД — хостами инкассации.
2. Определение проблем
Почти везде хосты инкассации расположены в специально оборудованных помещениях, в офисах компании, на выделенных под инкассацию серверах. Но в Восточной Сибири Ликард чаще всего представлен одним сотрудником, осуществляющим инкассацию терминалов, техподдержку операторов АЗС и прочее в режиме home-office, автономно. Необходимое ПО для осуществления инкассации развёрнуто на его домашнем компьютере. Изменений в ситуации не предвидится: объём покупок по топливным картам на порядок меньше, чем даже в Западной Сибири, получаемая с них прибыль (всего 3% от каждой покупки) не покроет затрат на содержание даже небольшого офиса.
Хост инкассации представляет собой композицию специально сконфигурированного железа, закрытого и устаревшего ПО: комплекса обработки входящей и генерации исходящей «почты» терминалов и комплекса инкассации терминалов (загрузка обновлённых справочников из почты, выгрузка файлов транзакций).
Железо — внешний dial-up модем (например, мой Zyxel U-1496E для надёжного соединения на самых зашумлённых линиях), 3G-брелок для инкассации терминалов через GPRS и Ethernet c подключенной услугой внешнего статического IP-адреса (# Huawei E1550), COM-порт (что в настоящее время редкость) для подключения внешного модема или коммуникационного кабеля терминала.
Основа первого комплекса — Microsoft Office 97 (в частности его компонент Access 97) и операционная система Microsoft Windows 2000 (либо XP с доработками реестра). Причём MSO97 — строго специальным образом обновлённый, более современные версии неправильно работают с написанной ещё в 97-м году на VBA базой данных, переработка её с чистого листа в более современном пакете — по неизвестным причинам считается головной организацией делом пустым.
Основа второго комплекса — созданный центральным отделом разработки Хост Обмена Информацией (сокращённо ХОИ), заменивший ранее использовавшийся Prowin2k. ХОИ состоит из коммуникационного, управляющего и конфигурационного приложений. Коммуникационное — консольное приложение без интерфейса, управляющее — собственно интерфейс к нему, позволяющий наблюдать процесс инкассации и управлять коммуникационным приложением. Конфигурационное приложение — редактор ini-файла настроек, подхватывающегося коммуникационным приложением при старте. Все 3 части написаны под windows, хотя такое подразделение предполагает возможность легкого портирования на Linux.
В последние годы, при замене и модернизации железа хостов инкассации возникали различные проблемы с MSO97 — из-за более 1Gb ОЗУ, слишком больших разделов на жёстком диске. Доставляет проблем и Windows, особенно в свете подключения к Интернету через внешний статический IP-адрес — как минимум приходится закрывать ненужные порты и работать через Outpost Firewall. Но главное — всё это развёрнуто на домашнем компьютере, владельцу которого вовсе не доставляет радость работа в устаревшей и небезопасной системе. Поставленная в другой раздел винчестера Ubuntu, используемая теперь как основная система, закрывает необходимость работы с Windows не полностью. На 3 часа в день приходилось перезагружаться под Windows для приёма «почты», инкассации терминалов и создания «почты» с полученными транзакциями.
3. Мой интерес
Свести общение с Windows к нулевому значению, решая задачи Home- и Office- в операционной системе Ubuntu. Хотя опыт интенсивного использования Linux в настоящий момент всего 9 месяцев, я уже немного освоился и перевёл примерно 70ПК на работе (3 компьютерных класса и около 10 «офисных» машин). Уже через несколько месяцев использования Ubuntu в качестве основной системы ежедневные перезагрузки с вырыванием 3-х плодотворных часов из жизни порядком надоели. То обстоятельство, что половина документов, логов, истории и почты находится под одной XP, а половина — под Ubuntu, вызывало большой дискомфорт. Некрасиво…
4. Описание процесса переноса ХОИ
a) Ubuntu 9.10, обновлённая до 10.04
Начались эксперименты с открытой виртуальной машиной от Oracle, доступной из репозитория Ubuntu. Малоинтересная часть (банальная установка WinXP на созданный виртуальный диск) не будет описана здесь. Следующая, более интересная часть ниже.
Настройки и неудачи.
- Oracle VirtualBox OSE не достаточно хорошо предоставлял COM-порт гостевой системе, не умел работать с USB-устройствами. Пришлось перейти на закрытую версию, благо и виртуальный диск, и настройки она подхватила без проблем. На ней внешний dial-up модем немедленно подружился с хостом. Радость от наблюдения первого инкассирующегося терминала была невыразима. 3 выпадающих из жизни полезных часа сократились до бесполезных 15 минут
- Закрытый Oracle VirtualBox отказывался «включать» прекрасно видимый им, разрешённый к проброске 3G-модем.. Это значило, что «быстро и просто», включая GPRS прямо из гостевой системы — не получится. Оставалось заставить работать 3G-модем из под Ubuntu. До этого момента 3G под Ubuntu я не использовал — изначально Network Manager в Ubuntu 9.10 мешал работе всякого сконфигурированного pppoe-подключения или 3G-подключения — не подхватывал предоставляемые подключениями адреса DNS-серверов. Поэтому его пакеты были удалены, а про 3G до случая забыто. Не желая возвращения Network Manager-a, был найден и установлен MobilePartner, интерфейс управления 3G-модемами под Linux от Мегафона. Успех был не полон, т.к. проявилась проблема сброса режима брелка в «modem+CD» из единственно годного «modem only». Она была преодолена следующим образом: физически отключаем модем, подаём через терминал команду восстановления режима, подключаем модем обратно. Не самое оптимальное решение, но модем стал стабильно определяться, и в нужный момент не вдавался в капризы
- Oracle VirtualBox по-умолчанию закрывает все порты для гостевой системы В опциях VM включен NAT, браузер гостевой ХР открывает веб-страницы, но инкассация по GPRS на хост не идёт. После выяснения обстоятельств (спасибо openkazan), нужный порт был проброшен в гостевую систему. Теперь и 15 минут каждый день меня более под виндой не видели)…
- Время гостевой и хостовой систем не соответствовали друг другу. Хостовая система жила по летнему времени, а гостевая — по зимнему. VirtualBox не эмулирует BIOS, правка времени из «часов» гостевой помогала на пару секунд — потом время «синхронизировалось» с таймером виртуального BIOS-a, и разница возвращалась. Визуально помогала смена зон — но на время в ХОИ это не влияло. Время терминалов синхронизировалось с ложным значения, возник бардак. Терминалы звонили одновременно, а на другие сутки звонили раньше или позже чем полагалось, приходилось вновь терять 3 часа жизни, чтобы только синхронизировать время терминалов и восстановить порядок. Ранее, подобная проблема мной встречалась и на WinXP, сразу после обновления до SP3 — она, как и Ubuntu, переводила время фиктивно, только на часах в трее. В результате сбивалось расписание инкассации и файлы транзакций, полученные в первый час после полуночи записывались вчерашним днём, а это совершенно недопустимо. Первоначально помогал перевод времени XP ещё на час вперёд, потом был найден лучший способ — отключение автоматического перевода часов и синхронизации с сервером времени — применив первое и думая о чём-то подобном второму, Google помог найти лекарство получше от этой беды.
Да, VirtualBox не позволяет задать абсолютную величину времени для гостевой системы. Но он позволяет задать отклонение в миллисекундах времени гостевой относительно времени хостовой… Перевод команды из win в lin и несколько опытов закончились подбором правильного значения параметра сдвига по фазе :), контрольной синхронизацией времени уже под Ubuntu, и бутылочкой Паулайнера себе в награду)
- Простое копирование файлов в подключенную сетевым диском папку хостовой машины сбивает на них аттрибуты времени. Утром, копируя принятые файлы транзакций в нужную папку хостовой машины, подключенную как сетевой диск Z, обнаружился вышеописанный трабл. Но простое решение пришло само — архивируем переносимые файлы с помощью 7z на гостевой системе, копируем архив куда_надо, распаковываем — и аттрибуты целы. Характерно то, что обратное копирование (с хостового Z на гостевой С) аттрибуты времени не сбивает.
- Одновременно работающие 2 подключения нарушают прохождение пакетов к ХОИ. Последнее из встреченных проблем. Если подключить 3G одновременно с подключенным pppoe — никакой GPRS-инкассации не будет… Первое кривое-полевое решение — физически отцепить кабель pppoe, перезагрузиться, включить GPRS. Второе, кривое несколько менее и без перезагрузки:
sudo poff dsl-provider
<включаем GPRS через GUI Mobile Partner>>
...
15 минут, инкассация проходит успешно
...
<выключаем GPRS через GUI Mobile Partner>
sudo pon dsl-provider
<инкассируем остальные терминалы>
Так, наступив на все грабли и выжив, моя инкассация стала проходить строго по регламенту)
b) Ubuntu 10.10 «из коробки». С 10.2010 по сий день
В октябре стал доступен Maverick..
Я читал мнение общественности его о многочисленных недоработках, отговоры от перехода, но мой самый сильный промах установкой Ubuntu 9.10 — выделение всего 16Gb на все её разделы, стал сказываться всё чаще. Сначала кончились 4Gb корневого раздела, а когда они были увеличены до 10Gb за счёт сокращения раздела с /home, проблемы возникли уже с последним. Ежедневное увеличение архива служебной почты на 10~20Мб — и вот база Thunderbird съедала чуть более, чем половину раздела… Так удобно разложенные Picassa фото с цифровика пришлось несколько раз перевозить на win-раздел и каждый раз потом долго искать, на какой именно (их 7)… Постоянный контроль свободного места в течении 2 месяцев, вывод на стабильные 1.2Gb и понимание — я не желаю заходить без особой необходимости на разделы NTFS, FAT32. Итогом стала большая чистка, высвобождение 80Gb у одного из на NTFS-разделов (28 корень + 2 swap + 50 /home) и установка самого свежего из имеющихся на болванке Ubuntu 10.10, с успокоением — я ничего не теряю, не понравится — вернусь в свою 10.04 и поставлю на закачку свежий дистрибутив ArchLinix)… Но — понравилось.- Во первых — Network Manager удалить не пришлось.. Так уж вышло, что сразу он заработал. Даже pppoe без pppoeconf поднялось (что в 9.10 никак не выходило, скорее всего из-за проблем с подхватом DNS; и замечу, что pppoeconf входит в дистрибутив изначально, от скачивания пакета под старой системой, чтобы установить его вручную в новую пользователь избавлен. И от манипуляций с resolv.conf тоже
- Во вторых — мой 3G-брелок Huawei E1550 опознан без дополнительной установки udev-modeswitch, подключается и отключается прямо из NM, режим не теряет, и вообще ведёт себя неожиданно пристойно… Очень редко пропадает из системы, но вынуть-встравить из порта помогает (пропадание ему свойственны и под Windows, с таким же решением).
- В третьих — необходимость в ежедневном общении с терминалом совсем пропала).. мышкой отключаем DSL, включаем 3G, после прохождения инкассации по GPRS повторяем в обратном порядке… Не питая антипатию к командной строке, но испытывая по ней стойкую ностальгию со времён БК10100 и NC v2.5, я провожу в ней столько же времени, сколько и на 10.04, но уже за более полезными для себя занятиями…
Значительно уменьшенные размеры еженедельных обновлений (зоопарка ПО и мусора пакетов в новой системе нет, т.к. с необходимым набор я для себя уже определился), успешно скопированные почтовая база и нужные настройки ПО из старого /home, более мелкие плюсы — отдельного упоминания не заслуживают (вроде прекратившихся зависаний Х-ов посреди работы). Виртуальный диск с ХОИ перенесён в /home и отпавшая необходимость автомонтирования ntfs-разделов при загрузке…
За год, с релиза 9.10 по релиз 10.10 сделано очень много, Ubuntu стала на порядок дружественнее, в самых разных проявлениях, я гарантирую это)..
5. Profit
Цели достигнуты, задачи выполнены, интерес приобретён)… Даже в бОльшем объёме и лучшем качестве, нежели предполагалось ранее. Так, VDI-образ винта с хостом можно безболезненно переносить на самое разное железо и ОС, не имея каждый раз сношений с установкой нужного софта, первичным его конфигурированием и прочими утехами windows-юзера… Работа под белымвнешнимстатическим IP стала безопаснее для хоста, ибо кроме как по открытому руками 8888-му порту и некоторым общеизвестным — доступа нет… Проблемы Google-Earth и прочего софта, кривого в своих последних linux-версиях, /me также не особо уж трогают — они поселились в виртуальной машине, хотя ради них одних поднимать её не стал бы)…
Собственно результат :)
Респект neonxp за корректорские правки)
P.S.: эх, плакала моя к..)