Este documento objetiva detalhar processo de instalação da aplicação  SP através do Podman.

Pré-requisitos


  • Acesso ao Registro de Contêineres Azure da Linx para ter acesso as imagens da aplicação
  • Instalar o PODMAN


Requisitos

Para conseguir dar andamento ao processo de configuração do Servidor de Estoque é imprescindível que na maquina onde esse processo será executado tenha a aplicação Podman instalado. Caso não tenha essa aplicação instalada na maquina clique aqui.


Etapa 1 - Preparação ambiente para instalação da imagem da aplicação 



Esta etapa objetiva preparar um diretório no servidor onde será instalada e executada a imagem do SP Cloud.

Atenção

Caso já tenha havido processo de preparação de ambiente para o servidor, os passos abaixo podem ser ignorados. Se as recomendações desta foram seguidas, basta verificar se existe diretório com nomenclatura container-linx no diretório /home.



INFORMAÇÕESEXEMPLO


1 - Criação de diretório

Sugerimos a criação de um diretório exclusivo para receber a imagem da aplicação.

Dessa forma, sugerimos que seja criado diretório containers-linx, no /home .

Na coluna ao lado estão os exemplos de comandos a serem executados o sistema operacional linux



TERMINAL LINUX
user@group /home: mkdir containers-linx

2 - Concessão de Permissões

Conceder permissão completa para diretório acima definido, a fim de habilitar as ações de leitura, escrita e execução da aplicação.

Na coluna ao lado está detalhado comando CHMOD.


TERMINAL
user@group /home: chmod 777 -R containers-linx

Etapa 2 - Download da Imagem do SP


Esta etapa objetiva explicar processo de download da release do SP que está disponível no RCA Azure Linx.


Atenção

Para a sequencia dessa etapa é mandatório que usuário tenha o acesso mencionado na seção pré-requisitos.


INFORMAÇÕESEXEMPLO
1- Iniciar um novo TERMINAL e executar comando para processo de autenticação no Azure. Após a execução do comando, será solicitada a digitação do usuário e senha.
TERMINAL LINUX
user@group /home/containers-linx: podman login acrlinxbigretail.azurecr.io

2 - Realizar download da imagem da aplicação.

Neste passo, deve ser informada a versão do release desejado no formato XX.XX.XX.

No exemplo ao lado está sendo considerada a versão 1.0.0 do SP da Tim. Após execução do comando, download será iniciado.


TERMINAL LINUX
user@group /home/containers-linx: podman pull acrlinxbigretail.azurecr.io/linx-storex-sp-<nome_cliente>:<versao>
// Substitua o <nome_cliente> pelo nome do cliente. Ex: tim
// substitua o <versao> pelo número da versão. Ex: 1.0.0
TERMINAL WINDOWS
root@aa-VirtualBox /home: podman pull acrlinxbigretail.azurecr.io/linx-storex-sp-tim:1.0.0
Trying to pull acrlinxbigretail.azurecr.io/linx-storex-sp-tim:1.0.0...
Getting image source signatures
Copying blob 2a47f0081120 skipped: already exists
Copying blob 59dc9c473909 skipped: already exists
Copying blob 765ce7435927 skipped: already exists
Copying blob aaebe599891b skipped: already exists
Copying blob 05a5b698281c skipped: already exists
Copying blob e9dc88128c43 skipped: already exists
Copying blob 316bd1e2795d skipped: already exists
Copying blob b033007e916d skipped: already exists
Copying blob 65e9287edd74 skipped: already exists
Copying blob 78e5dbb1f41f skipped: already exists
Copying blob 2647ff0a65b8 skipped: already exists
Copying blob 463ae422e4f1 skipped: already exists
Copying blob 70c775371c16 skipped: already exists
Copying blob 6c3ba7d2525f skipped: already exists
Copying blob 16c9b6d60219 skipped: already exists
Copying blob 5ae2fd7977af skipped: already exists
Copying config 5067342db9 done
Writing manifest to image destination
Storing signatures
5067342db9dc4aa8b15c6eaabdf7894c67623e3f628366662694a27049033ead




Etapa 3 -Configurando o Container (Podman) para Execução  



Nesse passo vamos detalhar processo de configuração para execução do container (Podman) contendo a aplicação do SP

Principal objetivo é detalhar as instruções para prover as configurações necessárias para funcionamento da aplicação como:

  • Apontamentos e credenciais de banco de dados
  • Definições de tunning de memória da JVM
  • Configurações de volumes externos ao contêiner onde haverá uma visibilidade para informações necessárias do cotidiano como: acesso aos logs e arquivos de configuração e persistência da aplicação.


INFORMAÇÕESEXEMPLO


1- Criação de diretório raiz para armazenar as configurações de todas as lojas

Sugerimos a criação do diretório p2ksp em /home/containers-linx .


Atenção

Caso tenha sido escolhido um outro diretório na Etapa 01 deste documento, a instrução acima deve considerar este diretório como a raiz para criação do container-servidor-estoque.

TERMINAL LINUX
user@group /home/containers-linx: mkdir p2ksp
TERMINAL
user@group /home/containers-linx: chmod 777 -R p2ksp

2 - Criação de um diretório por loja, de forma que os logs, dados e configurações estejam segregados. A criação dos volumes é importante principalmente para que os dados sejam preservados, mesmo que o contêiner não esteja mais ativo.

Sugerimos a criação do diretório sp_lj<numero_loja> em /home/containers-linx/p2ksp. Por exemplo:

/home/containers-linx/p2ksp/sp_lj0038


TERMINAL LINUX
user@group /home/containers-linx/p2ksp: mkdir sp_lj<numero_loja>
// user@group /home/containers-linx/p2ksp: mkdir sp_lj0038

3 - Após a criação da pasta da loja (vamos usar como exemplo a loja 0038), é necessário criar uma pasta para cada artefato que deseja compartilhar com o contêiner. No caso, a seguinte estrutura é desejada:

/home/containers-linx/p2ksp/sp_lj0038/atualizacaoComponente
/home/containers-linx/p2ksp/sp_lj0038/AtualizadorVersaoSp
/home/containers-linx/p2ksp/sp_lj0038/batch
/home/containers-linx/p2ksp/sp_lj0038/database
/home/containers-linx/p2ksp/sp_lj0038/filetransfer
/home/containers-linx/p2ksp/sp_lj0038/filetransfer/download
/home/containers-linx/p2ksp/sp_lj0038/temp
/home/containers-linx/p2ksp/sp_lj0038/bin
/home/containers-linx/p2ksp/sp_lj0038/bin/componentes
/home/containers-linx/p2ksp/sp_lj0038/bin/debug_P2K
/home/containers-linx/p2ksp/sp_lj0038/bin/filaTr1
/home/containers-linx/p2ksp/sp_lj0038/bin/logger
/home/containers-linx/p2ksp/sp_lj0038/bin/log
/home/containers-linx/p2ksp/sp_lj0038/bin/logTrace
/home/containers-linx/p2ksp/sp_lj0038/bin/messaging
/home/containers-linx/p2ksp/sp_lj0038/log

Para tal, a seguinte cadeia de comandos ao lado deve ser executada.


TERMINAL LINUX
user@group /home: mkdir /home/containers-linx/p2ksp/sp_lj0038/atualizacaoComponente
user@group /home: mkdir /home/containers-linx/p2ksp/sp_lj0038/AtualizadorVersaoSp
user@group /home: mkdir /home/containers-linx/p2ksp/sp_lj0038/batch
user@group /home: mkdir /home/containers-linx/p2ksp/sp_lj0038/database
user@group /home: mkdir /home/containers-linx/p2ksp/sp_lj0038/filetransfer
user@group /home: mkdir /home/containers-linx/p2ksp/sp_lj0038/filetransfer/download
user@group /home: mkdir /home/containers-linx/p2ksp/sp_lj0038/temp
user@group /home: mkdir /home/containers-linx/p2ksp/sp_lj0038/bin
user@group /home: mkdir /home/containers-linx/p2ksp/sp_lj0038/bin/componentes
user@group /home: mkdir /home/containers-linx/p2ksp/sp_lj0038/bin/debug_P2K
user@group /home: mkdir /home/containers-linx/p2ksp/sp_lj0038/bin/filaTr1
user@group /home: mkdir /home/containers-linx/p2ksp/sp_lj0038/bin/logger
user@group /home: mkdir /home/containers-linx/p2ksp/sp_lj0038/bin/log
user@group /home: mkdir /home/containers-linx/p2ksp/sp_lj0038/bin/logTrace
user@group /home: mkdir /home/containers-linx/p2ksp/sp_lj0038/bin/messaging
user@group /home: mkdir /home/containers-linx/p2ksp/sp_lj0038/log

4 - Além das pastas, há também arquivos de log do sistema. Como eles estão localizados na basta bin e há vários arquivos outros arquivos que não devem ser expostos, deve-se criar apenas os arquivos, para posteriormente realizar um bind entre a máquina host e pods.

/home/containers-linx/p2ksp/sp_lj0038/bin/CSIDebugFile.txt 
/home/containers-linx/p2ksp/sp_lj0038/bin/CSIDebugFileRT.txt 
/home/containers-linx/p2ksp/sp_lj0038/bin/CSIDebugFileRT.txt 
/home/containers-linx/p2ksp/sp_lj0038/atualizacaoComponente/atualizacao_componente.dat
/home/containers-linx/p2ksp/sp_lj0038/bin/versaoSP.dat


Observação: Vamos usar como exemplo a loja 0038.

Observação: O conteúdo do arquivo versaoSP.dat deve ser a versão correspondente à imagem instalada. Exemplo: VERSAO_SP = 16.38.00.

TERMINAL LINUX
user@group /home: touch /home/containers-linx/p2ksp/sp_lj0038/bin/CSIDebugFile.txt 
user@group /home: touch /home/containers-linx/p2ksp/sp_lj0038/bin/CSIDebugFileRT.txt 
user@group /home: touch /home/containers-linx/p2ksp/sp_lj0038/bin/CSIDebugFileSO.txt 
user@group /home: touch /home/containers-linx/p2ksp/sp_lj0038/atualizacaoComponente/atualizacao_componente.dat
user@group /home: echo VERSAO_SP = 16.38.00 >> /home/containers-linx/p2ksp/sp_lj0038/bin/versaoSP.dat

5 - Por fim, a partir da pasta /home/containers-linx/p2ksp, é o momento de dar permissões para todas as pastas e arquivos criados para a loja.

Observação: Vamos usar como exemplo a loja 0038.

TERMINAL
user@group /home/containers-linx/p2ksp: chmod 777 -R sp_lj0038

6- Definir as configurações por linha de comando

Uma vez realizados os processos acima, deve ser executado comando abaixo para configuração da base de dados necessário para funcionamento do Servidor de Estoque.

podman run --name storex-sp --privileged --restart always -dit -p 4023:4023 -p 4068:4068 -e MEM_MS=512m -e MEM_MX=512m -e MEM_MAX_PERM=1024 -e MEM_MAX_HEAP=1024m -e LOJA=<numero_loja> -e EPSERVER=<IP do EP> -v ./p2ksp/sp_lj<numero_loja>/batch:/usr/p2ksp/sp_lj9999/batch -v ./p2ksp/sp_lj<numero_loja>/database:/usr/p2ksp/sp_lj9999/database -v ./p2ksp/sp_lj<numero_loja>/filetransfer/download:/usr/p2ksp/sp_lj9999/filetransfer/download -v ./p2ksp/sp_lj<numero_loja>/temp:/usr/p2ksp/sp_lj9999/temp -v ./p2ksp/sp_lj<numero_loja>/bin/componentes:/usr/p2ksp/sp_lj9999/bin/componentes -v ./p2ksp/sp_lj<numero_loja>/bin/debug_P2K:/usr/p2ksp/sp_lj9999/bin/debug_P2K -v ./p2ksp/sp_lj<numero_loja>/bin/filaTr1:/usr/p2ksp/sp_lj9999/bin/filaTr1 -v ./p2ksp/sp_lj<numero_loja>/atualizacaoComponente:/usr/p2ksp/sp_lj9999/atualizacaoComponente
-v ./p2ksp/sp_lj<numero_loja>/AtualizadorVersaoSp:/usr/p2ksp/sp_lj9999/AtualizadorVersaoSp -v ./p2ksp/sp_lj<numero_loja>/bin/logger:/usr/p2ksp/sp_lj9999/bin/logger -v ./p2ksp/sp_lj<numero_loja>/bin/log:/usr/p2ksp/sp_lj9999/bin/log -v ./p2ksp/sp_lj<numero_loja>/bin/logTrace:/usr/p2ksp/sp_lj9999/bin/logTrace -v ./p2ksp/sp_lj<numero_loja>/bin/messaging:/usr/p2ksp/sp_lj9999/bin/messaging -v ./p2ksp/sp_lj<numero_loja>/log:/usr/p2ksp/sp_lj9999/log -v ./p2ksp/sp_lj<numero_loja>/bin/CSIDebugFile.txt:/usr/p2ksp/sp_lj9999/bin/CSIDebugFile.txt -v ./p2ksp/sp_lj<numero_loja>/bin/CSIDebugFileRT.txt:/usr/p2ksp/sp_lj9999/bin/CSIDebugFileRT.txt -v ./p2ksp/sp_lj<numero_loja>/bin/CSIDebugFileSO.txt:/usr/p2ksp/sp_lj9999/bin/CSIDebugFileSO.txt -v ./p2ksp/sp_lj<numero_loja>/bin/versaoSP.dat:/usr/p2ksp/bin/versaoSP.dat -v ./p2ksp/sp_lj<numero_loja>/atualizacaoComponente/atualizacao_componente.dat:/usr/p2ksp/sp_lj9999/atualizacaoComponente/atualizacao_componente.dat acrlinxbigretail.azurecr.io/linx-storex-sp-<nome_cliente>:<versao>


Os itens marcados em vermelho precisam ser substituídos pelos valores definidos do ambiente onde o servidor será executado.

Abaixo uma tabela com o detalhamentos desses parâmetros:


PropriedadeDetalhamentoExemplo
numero_lojaNúmero da lojasp_lj0038
nome_clienteNome do clientetim
versaoVersão do Servidor de Pedidosacrlinxbigretail.azurecr.io/linx-storex-sp-tim:1.0.0
numero_lojaNúmero do lojaLOJA=0038
IP do EPIP do EPEPSERVER=10.4.229.31


Adicionalmente, para uma melhor compreensão do comando, segue abaixo uma tabela com detalhamento das informações:


PropriedadeDetalhamentoValor recomendado
--name

Nome da Contêiner que receberá imagem da aplicação.


servidor-estoque
--privilegedDefine que o contêiner terá privilégios para escrever na máquina host, de forma que os volumes possam ser acessados e escritos irrestritamente
--restart

Define comportamento do Container para que seja iniciado juntamente com o Sistema Operacional e reiniciado em caso de falha.

Atenção: Feature exclusiva para LINUX. Para sistema operacional Windows, clique aqui.

always
-p

Define as portas que serão utilizadas pela imagem da aplicação no formato <Porta 1><Porta 2>, onde:

<Porta 1> - Porta que será definida pelo cliente, como visível para acessar a aplicação no Contêiner.

<Porta 2> - Porta definida pela Linx que é usada pela imagem da aplicação internamente no Contêiner.

Atenção: A Porta 2 não PODE ser ser modificada, pois afetará funcionamento da aplicação.

 -p 4023:4023 

 -p 4068:4068

acrlinxbigretail.azurecr.io/linx-storex-sp-tim:1.1.0 
Informação da Imagem do Contêiner

podman run --name storex-sp --privileged --restart always -dit -p 4023:4023 -p 4068:4068 -e MEM_MS=512m -e MEM_MX=512m -e MEM_MAX_PERM=1024 -e MEM_MAX_HEAP=1024m -e LOJA=0038 -e EPSERVER=10.4.229.31 -v ./p2ksp/sp_lj9999/batch:/usr/p2ksp/sp_lj9999/batch -v ./p2ksp/sp_lj0038/database:/usr/p2ksp/sp_lj9999/database -v ./p2ksp/sp_lj0038/filetransfer:/usr/p2ksp/sp_lj9999/filetransfer -v ./p2ksp/sp_lj0038/temp:/usr/p2ksp/sp_lj9999/temp -v ./p2ksp/sp_lj0038/bin/componentes:/usr/p2ksp/sp_lj9999/bin/componentes -v ./p2ksp/sp_lj0038/bin/debug_P2K:/usr/p2ksp/sp_lj9999/bin/debug_P2K -v ./p2ksp/sp_lj0038/bin/filaTr1:/usr/p2ksp/sp_lj9999/bin/filaTr1 -v ./p2ksp/sp_lj0038/atualizacaoComponente:/usr/p2ksp/sp_lj9999/atualizacaoComponente
-v ./p2ksp/sp_lj0038/AtualizadorVersaoSp:/usr/p2ksp/sp_lj9999/AtualizadorVersaoSp -v ./p2ksp/sp_lj0038/bin/logger:/usr/p2ksp/sp_lj9999/bin/logger -v ./p2ksp/sp_lj0038/bin/log:/usr/p2ksp/sp_lj9999/bin/log -v ./p2ksp/sp_lj0038/bin/logTrace:/usr/p2ksp/sp_lj9999/bin/logTrace -v ./p2ksp/sp_lj0038/bin/messaging:/usr/p2ksp/sp_lj9999/bin/messaging -v ./p2ksp/sp_lj0038/log:/usr/p2ksp/sp_lj9999/log -v ./p2ksp/sp_lj0038/bin/CSIDebugFile.txt:/usr/p2ksp/sp_lj9999/bin/CSIDebugFile.txt -v ./p2ksp/sp_lj0038/bin/CSIDebugFileRT.txt:/usr/p2ksp/sp_lj9999/bin/CSIDebugFileRT.txt -v ./p2ksp/sp_lj0038/bin/CSIDebugFileSO.txt:/usr/p2ksp/sp_lj9999/bin/CSIDebugFileSO.txt -v ./p2ksp/sp_lj0038/bin/versaoSP.dat:/usr/p2ksp/bin/versaoSP.dat -v ./p2ksp/sp_lj0038/atualizacaoComponente/atualizacao_componente.dat:/usr/p2ksp/sp_lj9999/atualizacaoComponente/atualizacao_componente.dat acrlinxbigretail.azurecr.io/storex-sp-tim:1.0.0





  • Sem rótulos