Você está na página 1de 20

Ambiente de execução

MIR no web2py
Revisão

Data da Revisão Versão Autor Alterações

1
Indice
Revisão 1

Indice 2

1. Apresentação 3

2. Instalação do ambiente 3
2.1. Git e VsCode 3
2.1.1. Alteração da versão atual do python 3
2.1.1.1. Utilizando o asdf 3
2.1.1.2. Utilizando o pyenv 5
2.2. Repositório 6
2.2.1. Arquivos de configuração 6
2.3. Web2py 8
2.4. Virtualenv 9
2.4.1. Erros de versão do .venv causados pela mudança de versão do python 10
2.5. Docker e DBeaver 11

3. Restaurar banco de dados 17

4. Erros Comuns 18
4.1. An AppArmor policy prevents this sender from sending this message to this recipient’ 18
4.2. The name org.freedesktop.secrets was not provided by any .service files 18

2
1. Apresentação
O objetivo deste documento é guiar o usuário através dos passos necessários para instalação
do ambiente de desenvolvimento do aplicativo mir.

2. Instalação do ambiente

2.1. Git e VsCode


Abrir o konsole e instalar os seguintes programas executando um de cada vez os comandos
abaixo:
sudo apt-get install git

sudo snap install code --classic

Em seguida verificar a versão do python instalado usando o comando:


python3 --version

Você deverá obter um resultado parecido com isso

Consulte a equipe de desenvolvimento para verificar se está usando a versão correta. Em caso
positivo, pode seguir para o próximo passo. Caso negativo, execute os comandos abaixo:

2.1.1. Alteração da versão atual do python


Há duas opções que é possível efetuar a alteração da versão do Python, sendo:

2.1.1.1. Utilizando o asdf

3
Pacotes essenciais para a alteração da versão do python desejada:
sudo apt install -y make build-essential libssl-dev zlib1g-dev libbz2-dev
libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-
dev xz-utils tk-dev

Após a instalação dos pacotes, será necessário atualizar a lista:


sudo apt update && sudo apt upgrade

Efetuar o clone das dependências do asdf:


git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.8.1

git -C ~/.asdf checkout "$(git -C ~/.asdf describe --abbrev=0 --tags)"

Após o clone editar o arquivo ~/.bashrc:


nano ~/.bashrc

E inserir no final o seguinte comando:

. $HOME/.asdf/asdf.sh
. $HOME/.asdf/completions/asdf.bash

Após salvar o arquivo, reinicie o terminal

Adicionar o plugin que permitirá o gerenciamento das múltiplas versões do python:


asdf plugin-add python

Selecione a versão de python desejada e efetue a instalação e aplicação global do python:


asdf list all python

asdf install python VersãoDoPythonDesejada


asdf global python VersãoDoPythonDesejada

Para visualizar a versão do python asdf instalada e versão atual global do python digite no
terminal:
asdf list python

python --version

4
2.1.1.2. Utilizando o pyenv

Alterando versão python atual para outra versão desejada:


sudo apt install -y make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev \
libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python-openssl \git

git clone https://github.com/pyenv/pyenv.git ~/.pyenv

nano ~/.bashrc

Colar no final do arquivo os seguintes comandos:


echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init --path)"' >> ~/.bashrc

Listar as versões de python


pyenv install -l

Escolher a versão e executar


pyenv install <versao>
Nota: substituir <versao> com a versão atualmente utilizada no projeto.

Visualizar versão do python instalada do pyenv e a *global


pyenv versions

Definir a versão do python para global


pyenv global <versao>
Nota: substituir <versao> com a versão atualmente utilizada no projeto.

Em casos de problema com a .venv na alteração do python siga os passos do tópico

Usar os comandos para instalar o npm


sudo apt install npm

5
Para instalar o node
sudo curl -o-
https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash

nvm install --lts

Para verificar a versão instalada

2.2. Repositório
Criar estrutura de pastas utilizando os comandos abaixo:
cd /home/<usuario>
Substituir <usuario> pelo nome de usuário da sua máquina

Em seguida iremos criar uma sequência de pastas começando por git > mir > mir
mkdir git
cd git
mkdir mir
cd mir

Executar o seguinte comando para clonar o projeto dentro da pasta mir


git clone https://gitlab.tecsus.com.br/mir/mir.git

2.2.1. Arquivos de configuração

Dentro da pasta Documentação Mir acesse a pasta recursos do mir, esta pasta contém 4
arquivos essenciais para rodar o ambiente de desenvolvimento, appconfig.ini, launch.json,
routes.py e settings.json.
Dentro da pasta do projeto (MIR) crie uma pasta chamada .vscode e coloque os arquivos
settings.json e launch.json

6
Dentro da pasta private coloque o arquivo appconfig.ini

Abra o arquivo appconfig.ini e edite os seguintes campos.


Dev Email: (seu email corporativo)
E no campo “redis” altere para false, redis é um container essencial para rodar o app, caso
você ainda não o tenha instalado marque como falso,se deixar como true o ambiente não irá
rodar sem a instalação deste container.

; App configuration
[app]
name = Ultragaz Controle
author = Tecsus <suporte@tecsus.com.br>
description = Sistema de Medicao Individual Remota
keywords = Tecsus, Ultragaz, Medicao, Individual, Remota
production = false
toolbar = false
dev_mail = SEU-EMAIL@tecsus.com.br
recaptcha = false
jivochat = false

; Holding redis configuration


[session]
redis = false
redis_host = 127.0.0.1
redis_port = 6379
redis_pass = mirf0Rsession

Na próxima etapa após a instalação do web2py adicione o arquivo routes.py na raiz da pasta
web2py.

7
2.3. Web2py
Acessar http://www.web2py.com/init/default/download e baixar a opção Source
Code for Python 3.7

Descompactar e usar o seguinte comando para copiar o diretório para pasta /home/
sudo cp -R <source_folder> /home/
Substituir <source_folder> pelo caminho onde a pasta descompactada do web2py está.

Em seguida, criar link simbólico da pasta mir dentro da pasta applications do web2py
sudo ln -s /home/<usuario>/git/mir/mir/ /home/web2py/applications/
Substituir <usuario> pelo nome de usuário da sua máquina.

Verificar dentro de /home/web2py/applications se a pasta mir foi criada.

Conceder permissão ao usuário para acessar a pasta web2py:


cd /home/
sudo chmod -R 777 web2py
sudo chown <usuario> web2py

2.4. Virtualenv

Executar os comandos dentro da pasta mir do projeto


sudo apt install python3-virtualenv

python3.8 -m virtualenv .venv

8
source .venv/bin/activate

python -m pip install -r requirements.txt

Para desativar a (.venv) use o comando:


deactivate

Após a instalação da venv configure seu launch.json para rodar a versão do python
correspondente a venv instalada. (verifique versão na pasta .venv/bin)
Altere o campo “python.pythonPath” com o caminho do python da sua pasta .venv.
Em “configurations” e depois em “program” coloque o caminho do seu arquivo web2py.py.
E por fim em “cwd” adicione o caminho da pasta web2py instalada em seu computador.

{
// Use o IntelliSense para saber mais sobre os atributos possíveis.
// Focalizar para exibir as descrições dos atributos existentes.
// Para obter mais informações, acesse:
https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"python.pythonPath": ".venv/bin/python3",
"configurations": [
{
"name": "Python: MIR",
"type": "python",
"request": "launch",
"justMyCode": false,
"program": "/home/web2py/web2py.py",
"cwd": "/home/web2py/",
"console": "integratedTerminal",
"args": [
"-p 8003", "--password=admin", "--no_gui", "--ip=0.0.0.0"
],
},
]
}

9
2.4.1. Erros de versão do .venv causados pela mudança de versão do
python
Em casos de troca de versão do python conforme os passos feitos através do tópico
Execute os seguintes comandos para visualizar a versão global utilizada do python3 e o
caminho da pasta onde o python3 está instalado.
python3 --version

which python3

Após achar o caminho da pasta onde se encontra o python3, deverá ir ao terminal do VSCode
com o projeto aberto e executar os seguintes comandos:
sudo apt install python3-virtualenv

pip3.8 install virtualenv

python -m virtualenv .venv

python -m pip install -r requirements.txt

source .venv/bin/activate

O próximo passo é alterar no arquivo do launch.json logo abaixo de “version”:”......”, o caminho


onde o python3.8 está localizado na pasta .venv do projeto.

10
"version": "0.2.0",
"python.pythonPath": ".venv/bin/python3.8",
"configurations": [

2.5. Docker e DBeaver

sudo apt install apt-transport-https ca-certificates curl software-


properties-common

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

sudo add-apt-repository "deb [arch=amd64]

11
https://download.docker.com/linux/ubuntu focal stable"

Acessar o site https://dockstation.io/


Clicar em download e clicar na opção ‘Download for Ubuntu / Debian’

sudo apt install docker-compose

Reiniciar o computador para o container aparecer no Dockstation, após


a reinicialização abrir o Dockstation e iniciar o container

Para verificar se o container está ativo, executar o seguinte comando:


systemctl status docker

Será exibido dessa forma:

12
Use os comandos para configurar a imagem docker:
sudo usermod -aG docker $USER

sudo chmod 766 /var/run/docker.sock

sudo docker pull mysql/mysql-server:5.7

sudo docker run --name=mysql -p3306:3306 -e MYSQL_ROOT_PASSWORD=password


--restart on-failure -d mysql/mysql-server:5.7

docker logs mysql1 2>&1 | grep GENERATED

sudo docker container ls

sudo docker exec -it mysql mysql -u root -p


(senha é password)

CREATE USER 'root'@'%' IDENTIFIED BY 'password';

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';

CREATE USER 'readonly'@'%' IDENTIFIED BY 'password';

GRANT ALL PRIVILEGES ON *.* TO 'readonly'@'%';

CREATE USER 'mirweb2py'@'%' IDENTIFIED BY 'password';

GRANT ALL PRIVILEGES ON *.* TO 'mirweb2py'@'%';

FLUSH PRIVILEGES;

Acessar https://dbeaver.io/download/, fazer o download clicando na


opção Linux Debian package (installer) e fazer a instalação

13
Com o DBeaver aberto escolha a opção Nova Conexão de Bancos

Escolha MySQL e avance

14
Configure como a seguir

15
Teste a conexão (faça o download do drivers se necessário) e clique em
concluir.

Antes de prosseguir para restauração do banco de dados, vamos criar um


novo bd para que possa ser usado para a restauração das tabelas.

Clique para abrir um novo script

16
Digite e execute (ctrl + enter) o seguinte comando:
CREATE DATABASE mir;

3. Restaurar banco de dados


Acessar Drive > Shared with me > mir > backups > baixar o dump mais recente

Caso não possua o pacote mysql-client-core, execute:


sudo apt install mysql-client-core-8.0

Para restaurar o dump no banco utilize o comando abaixo, não esqueça de substituir os
campos para as informações da sua instalação:

mysql --quick --max_allowed_packet=25M -p --verbose --protocol=tcp --


host=<HOST> --user=<USER> --port=3306 --default-character-set=utf8 --
comments --database=<DATABASE> < <FILENAME>
Informativo:
<HOST> 127.0.0.1
<USER> root
<DATABASE> mir
<FILENAME> Caminho do arquivo dump baixado.

Para anonimizar a tabela de usuário, faça:


UPDATE auth_user
SET email= CONCAT("<SEU-EMAIL>+teste",id,"@tecsus.com.br")
WHERE id>0;

Para garantir que todos os usuários tenham a mesma senha faça:


UPDATE auth_user u

17
JOIN auth_user s
ON s.id=1
SET u.password = s.password
WHERE u.id>1;

4. Erros Comuns
4.1. An AppArmor policy prevents this sender from sending this
message to this recipient’
Esse erro ocorre ao clicar em “store in keychain” ou ao tentar inserir a senha para conexão.
Acontece quando a aplicação é instalada como pacote snap que por padrão não tem permissão
para acessar o serviço de armazenamento do gnome.

sudo snap connect mysql-workbench-community:password-manager-


service :password-manager-service

4.2. The name org.freedesktop.secrets was not provided by any


.service files
Em caso de erro `The name org.freedesktop.secrets was not provided by any .service files`
sudo apt install gnome-keyring

18
19

Você também pode gostar