Diferenças
Aqui você vê as diferenças entre duas revisões dessa página.
— |
sistemas:suap:instalacaosuapproducao [2022/04/01 15:54] (atual) Joao Victor Ribeiro Galvino criada |
||
---|---|---|---|
Linha 1: | Linha 1: | ||
+ | ====== INSTALAÇÃO DO SUAP - AMBIENTE DE PRODUÇÃO ====== | ||
+ | 1) Instalar alguns pacotes necessários para a aplicação SUAP | ||
+ | |||
+ | <code bash> | ||
+ | sudo apt update -y && sudo apt upgrade -y && sudo apt autoremove -y | ||
+ | </ | ||
+ | |||
+ | <code bash> | ||
+ | # pacotes utilizados pelo IFCE | ||
+ | sudo apt install git python-dev libpq-dev libssl-dev libldap2-dev libsasl2-dev python-setuptools build-essential libncurses5 libncurses5-dev python-pil python-simplejson freetds-dev libxml2 libxml2-dev libxslt-dev cython libblas-dev liblapack-dev libatlas-base-dev gfortran libjpeg8-dev libffi-dev xvfb python-yaml python3-pip virtualenv nginx supervisor python3-setuptools -y | ||
+ | |||
+ | # adicionais dos pacotes do IFRN que não constam nos nossos pacotes | ||
+ | sudo apt install ghostscript libjpeg-dev libfreetype6-dev zlib1g-dev libxmlsec1-dev libxslt1-dev libglu1-mesa libcairo2 libcups2 libdbus-glib-1-2 libxinerama1 libsm6 python3-dev python3-wheel python3-cffi libpango-1.0-0 libpangocairo-1.0-0 poppler-utils ntpdate swig zlib1g-dev libffi7 -y | ||
+ | |||
+ | # pacotes sob análise (que não foram encontrados ou apresentaram versões diferentes) | ||
+ | # consta no IFRN e não foi encontrado no Ubuntu 20.04 (utilizando libffi7 como teste) | ||
+ | libffi6 | ||
+ | # constava no nosso mas a versão encontrada foi python3-suds | ||
+ | python-suds | ||
+ | |||
+ | </ | ||
+ | |||
+ | <fc # | ||
+ | |||
+ | <code bash> | ||
+ | cd /tmp | ||
+ | wget https:// | ||
+ | tar xf wkhtmltox-0.12.4_linux-generic-amd64.tar.xz | ||
+ | sudo cp / | ||
+ | sudo chown root:root / | ||
+ | </ | ||
+ | |||
+ | <fc # | ||
+ | |||
+ | <code bash> | ||
+ | sudo wkhtmltopdf | ||
+ | </ | ||
+ | -------------------- | ||
+ | |||
+ | 2) Criar a pasta / | ||
+ | |||
+ | <code bash> | ||
+ | sudo mkdir -p / | ||
+ | </ | ||
+ | |||
+ | 3) Fazer o clone do SUAP | ||
+ | |||
+ | **Clone do projeto SUAP com chave de deploy** | ||
+ | |||
+ | Obs.: É preciso criar chave de deploy no Gitlab | ||
+ | <code bash> | ||
+ | git clone https://< | ||
+ | </ | ||
+ | |||
+ | 4) Configuração de diretórios compartilhados pelo NFS | ||
+ | |||
+ | <code bash> | ||
+ | sudo apt install nfs-common -y | ||
+ | sudo systemctl enable nfs-common --now | ||
+ | |||
+ | # Importante verificar na máquina de NFS se o arquivo **/ | ||
+ | # Na máquina do NFS --> Após alteração do arquivo / | ||
+ | </ | ||
+ | |||
+ | Caso encontre o erro **" | ||
+ | <code bash> | ||
+ | sudo rm / | ||
+ | </ | ||
+ | |||
+ | Comando para montar volume nos clientes: | ||
+ | |||
+ | <code bash> | ||
+ | # montando sessions | ||
+ | sudo mount 200.17.33.234:/ | ||
+ | |||
+ | # montando media | ||
+ | [ -d / | ||
+ | sudo chown suap:suap / | ||
+ | sudo chmod 777 / | ||
+ | sudo mount 200.17.33.234:/ | ||
+ | |||
+ | # montando arquivos_siape | ||
+ | sudo mount 200.17.33.234:/ | ||
+ | sudo chown -R www-data: | ||
+ | |||
+ | # verificando a existência dos três pontos de montagem acima | ||
+ | df -h | ||
+ | </ | ||
+ | |||
+ | Adicionar no crontab: | ||
+ | |||
+ | <code bash> | ||
+ | # Abrir o crontab como sudo: | ||
+ | sudo crontab -e | ||
+ | # Inserir conteúdo abaixo: | ||
+ | @reboot /bin/mount 200.17.33.234:/ | ||
+ | @reboot /bin/mount 200.17.33.234:/ | ||
+ | @reboot /bin/mount 200.17.33.234:/ | ||
+ | </ | ||
+ | |||
+ | 5) Crie o arquivo settings.py | ||
+ | |||
+ | <code bash> | ||
+ | # settings_sample.py é um template --> fazer as devidas mudanças em settings.py | ||
+ | cp / | ||
+ | </ | ||
+ | |||
+ | 6) Criação do ambiente virtual (Virtualenv) e instalação das bibliotecas do Python/ | ||
+ | |||
+ | <code bash> | ||
+ | # criando e ativando ambiente virtual com a versão do python3 | ||
+ | virtualenv / | ||
+ | |||
+ | # inserindo a habilitação automática do ambiente virtual no shell padrão do usuário suap | ||
+ | echo " | ||
+ | |||
+ | # instalando os requirements para a aplicação | ||
+ | pip install -U -r / | ||
+ | |||
+ | # caso ocorra o erro " | ||
+ | git config --global url." | ||
+ | </ | ||
+ | |||
+ | 7) Alterar permissões em pastas e arquivos específicos | ||
+ | |||
+ | Alterar proprietário de pastas | ||
+ | |||
+ | <code bash> | ||
+ | sudo mkdir / | ||
+ | sudo chown -R www-data: | ||
+ | sudo chmod -R ugo+rw / | ||
+ | </ | ||
+ | |||
+ | Criar e dar permissões em arquivos de log | ||
+ | |||
+ | <code bash> | ||
+ | sudo touch / | ||
+ | sudo chmod ugo+rwx / | ||
+ | sudo mkdir / | ||
+ | sudo chown -R suap:suap / | ||
+ | |||
+ | </ | ||
+ | |||
+ | 8) Aumentar o número máximo de descritores e arquivos abertos | ||
+ | |||
+ | No terminal, digite o comando a seguir: | ||
+ | |||
+ | <code bash> | ||
+ | ulimit -n | ||
+ | </ | ||
+ | |||
+ | Se o terminal exibe 1024, é insuficiente. Como **root**, Adicione as linhas abaixo ao arquivo / | ||
+ | <code bash> | ||
+ | echo -e "root soft nofile 65536\nroot hard nofile 65536 \n* soft nofile 65536\n* hard nofile 65536" >> / | ||
+ | </ | ||
+ | -------------------- | ||
+ | |||
+ | 9) Configurar Gunicorn e Supervisor | ||
+ | |||
+ | <code bash> | ||
+ | # se o comando abaixo não retornar nada o Gunicorn instalado atualmente | ||
+ | # deve ser removido e então instalado via pip | ||
+ | pip freeze | grep gunicorn | ||
+ | # caso seja necessário desinstalar | ||
+ | sudo apt purge gunicorn | ||
+ | sudo pip install gunicorn | ||
+ | </ | ||
+ | |||
+ | <code bash> | ||
+ | cp / | ||
+ | sudo chmod ugo+x / | ||
+ | sudo cp / | ||
+ | </ | ||
+ | |||
+ | <code bash> | ||
+ | sudo systemctl enable supervisor --now | ||
+ | |||
+ | </ | ||
+ | |||
+ | 10) Configurar o Nginx | ||
+ | |||
+ | Embora exista um arquivo template, é importante verificar potenciais mudanças. | ||
+ | |||
+ | Em ambiente de homologação sem ssl: | ||
+ | |||
+ | <code bash> | ||
+ | sudo cp / | ||
+ | sudo ln -s / | ||
+ | sudo systemctl enable nginx --now | ||
+ | </ | ||
+ | |||
+ | Configurando em ambiente de produção com ssl: | ||
+ | <code bash> | ||
+ | sudo cp / | ||
+ | </ | ||
+ | |||
+ | Iniciando e habilitando o NGINX: | ||
+ | <code bash> | ||
+ | sudo systemctl enable nginx --now | ||
+ | </ | ||
+ | |||
+ | 11) Usar o comando sync | ||
+ | |||
+ | <code bash> | ||
+ | python / | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ----------- | ||
+ | |||
+ | [[sistemas: |