Один из вариантов развертывания модуля Artix Virtual Pos (VPOS) – установка через docker-контейнер.
В качестве примера для установки docker выбрана ОС Ubuntu 22.04. |
Для установки docker необходимо:
Установить Docker Engine, выполнив команды:
sudo apt-get remove docker docker-engine docker.io containerd runc sudo apt-get update sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" sudo apt-get update sudo apt-get install docker-ce |
Получить сертификат для доступа к хранилищу docker-образов, выполнив команду:
curl -fsSL http://downloads.artix.su/static/downloads/docker/vpos_env/import_docker_cert.sh | sudo /bin/bash - && ls -1 /etc/docker/certs.d/*/* |
Для замены просроченного сертификата скачать и запустить скрипт
|
В директории /etc/docker/certs.d/dockerregistry.artix.su:2443
будут размещены файлы сертификата:
ca.crt
,client.cert
,client.key
.Перезапустить docker, выполнив команду:
sudo service docker restart |
Посмотреть версии VPOS доступные для скачивания, выполнив команды:
cd /etc/docker/certs.d/dockerregistry.artix.su\:2443/ curl --cacert ./ca.crt --key ./client.key --cert ./client.cert https://dockerregistry.artix.su:2443/v2/artix-vpos/tags/list |
Скачать VPOS, выполнив команду:
В команде необходимо указать версию VPOS, для которой необходимо создать docker-контейнер. |
docker pull dockerregistry.artix.su:2443/artix-vpos:artix-4.6.238-5 |
Запуск VPOS из контейнера производится выполнением команды вида:
docker run --restart=always -p8090:8090 -p7795:7795 \ --mount src=mysql_vpos1,dst=/linuxcash/cash/data/mysql \ --mount src=conf_vpos1,dst=/linuxcash/cash/conf \ --mount src=qpid_vpos1,dst=/var/spool/qpid \ --mount src=puppet_ssl_vpos1,dst=/var/lib/puppet/ssl \ -ePUPPET_SERVER_NAME="srv-saas-demo.dmz" -ePUPPET_SERVER_IP="localhost" \ -eCASH_SHOP_CODE=100 -eCASH_CASH_CODE=10 \ -eSTART_SERVICES="qpid sync nes mysql vpos" \ -eMYSQLSERVER_SERVERDB="false" \ -eMYSQLSERVER_HOST="localhost" \ -eMYSQLSERVER_PORT="3306" \ -eMYSQLSERVER_USER="root" \ -eMYSQLSERVER_PASSWORD="" \ -eCATALOGFACTORY_DBNAME="dictionariesAll" \ -eDISCOUNT_DBNAME="dictionariesAll" \ -d --hostname vpos-docker-100-10 --name vpos1 \ -ti dockerregistry.artix.su:2443/artix-vpos:artix-4.6.238-5 |
Команда docker
с опцией run
запускает новый контейнер:
--restart=always
гарантирует, что контейнер всегда перезагружается демоном docker, если по какой-то причине он останавливается.--mount
отвечает за монтирование данных между хостовой машиной и docker-контейнером. Состоит из нескольких пар ключ-значение, разделенных запятыми. В параметре src
передается источник монтирования, в параметре dst
- путь, в котором файл или каталог монтируется в контейнере.--hostname
задает имя хоста.--name
задает имя машины, которая работает в docker-контейнере.-p8090:8090
предназначена для проброса портов в docker-контейнер. Для работы кассового сервера также должен быть обязательно проброшен порт 7795. Порт 8090 по умолчанию используется для взаимодействия между сервисом интернет-магазина и VPOS.Просмотр точек монтирования осуществляется при выполнении команды:
docker volume ls |
Подключение к VPOS для управления выполняется командой:
docker exec -ti vpos1 bash |
Для удаления контейнера с VPOS необходимо остановить ее и выполнить команду удаления:
docker stop vpos1 docker rm vpos1 |
CASH_SHOP_CODE=1
– код кассы, который будет установлен в cash.reg
.CASH_CASH_CODE=1
– код магазина, который будет установлен в cash.reg
.CASH_SHIFT_NUMBER=1
– номер смены, который будет установлен в cash.reg
.CASH_CHECK_NUMBER=1
– номер чека, который будет установлен в cash.reg
.CASH_SHIFT_BEG="2017-11-27T17:29:21"
– время начала смены, которое будет установлено в cash.reg
.START_SERVICES="qpid sync nes mysql vpos"
– список сервисов, которые запустятся после старта контейнера. Для корректного функционирования VPOS, необходимы:sync
– отвечает за попадание справочников на кассу, касса должна подхватиться КС по ip-адресу,
qpid
– очереди обмена,
mysql
– хранилище БД, используется как обменом, так и кассой,
nes
– сервис обмена,
vpos
– сервис VPOS, после инициализации доступен на порту 8090
,
executor
– сервис, который может запускать скрипт, с определенной периодичностью, непосредственно внутри контейнера.
SET_TIMEZONE="Asia/Krasnoyarsk"
– часовая зона, в которой предполагается работа VPOS.PUPPET_SERVER_NAME="puppet"
– доменное имя puppet-сервера, с которого VPOS будет скачивать конфигурацию.PUPPET_SERVER_IP=""
– IP-адрес puppet-сервера, если будет указан, в файл /etc/hosts
кассы будет помещена запись для связки PUPPET_SERVER_NAME
и PUPPET_SERVER_IP
.COMMAND_URI="http://localhost/command"
– путь до команды, которую необходимо выполнять в executor
, выкачивается по curl -f "$COMMAND_URI"
.COMMAND_TIMEOUT=10
– время на выполнение команды сервисом executor
. Если выполнение команды затрачивает больше времени, то ее выполнение прекращается командой kill
.COMMAND_SLEEP=5
– ожидание между повторами выполнения команды сервисом executor
.MYSQLSERVER_SERVERDB
– нужно ли использовать БД кассового сервера. По умолчанию false
.MYSQLSERVER_HOST
– хост удаленной базы данных. По умолчанию localhost
.MYSQLSERVER_PORT
– порт удаленной базы данных. По умолчанию 3306
.MYSQLSERVER_USER
– имя пользователя для доступа к удаленной базы данных. По умолчанию root
.MYSQLSERVER_PASSWORD
– пароль для доступа к удаленной базы данных. По умолчанию "".CATALOGFACTORY_DBNAME
– название базы данных каталогов. По умолчанию "dictionariesAll
".DISCOUNT_DBNAME
– название базы данных скидок. По умолчанию "dictionariesAll
".Настройка подключения VPOS к удаленному кассовому серверу осуществляется в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/vpos.ini
. Для этого необходимо задать параметры csPort
, csUser
, csPassword
.