Este documento objetiva detalhar processo de instalação da aplicação SP através do Podman.
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ÇÕES | EXEMPLO |
---|---|
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ÇÕES | EXEMPLO |
---|---|
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ÇÕES | EXEMPLO | ||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
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 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 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 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:
Adicionalmente, para uma melhor compreensão do comando, segue abaixo uma tabela com detalhamento das informações:
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 |