Guia completo para restauração do servidor de produção

De EAPn
Ir para navegação Ir para pesquisar

Observação: este guia espera que sejam utilizados os softwares mencionados (similares podem funcionar de forma distinta) e um sistema operacional baseado em debian
Observação: somente foi testado o passo 1 no ubuntu server 20.04.05 em 06/12/2022
AVISO - DO PASSO 2 EM DIANTE O GUIA AINDA ESTÁ EM CONSTRUÇÃO (dia 20/12/2022)
TODO - COLOCAR O ARQUIVO DO CRONTAB NO BACKUP
TODO *NO FINAL DEPOIS DE ATUALIZAR A POLITICA DE BACKUP* - ATUALIZAR A CHECAGEM DO PACOTE DE BACKUP
TODO *DEPOIS DA MUDANÇA DA WIKI* - ATUALIZAR COMANDOS PARA RESTAURAR A DATABASE DA WIKI E DO METABASE NO PASSO 1 DESTE GUIA
TODO - ESTÁ SENDO INCLUIDO NO BACKUP TODO O /ETC PORÉM DEVEMOS RESTAURAR SÓ OS ARQUIVOS DE INTERESSE TODO - REVISAR PASTA CONFIGURAÇÕES COM CONFIGURAÇÕES FEITAS PELO MARIANI QUE TAMBÉM ESTÁ SENDO INCLUIDA NO BACKUP E PODE ESTAR DESATUALIZADO
TODO - DOCUMENTAR TODA ARQUITETURA DE BACKUP - FUNCIONAMENTO DO SCRIPT, ONDE ESTÃO OS DADOS(NA DEV2 E NA WORKSTATION DELL, E COMO ESTÃO CONFIGURADOS (RAID ZFS)), COMO SÃO ACESSADOS (NFSv4), POLITICA DE BACKUP (CRONTAB E PERIODO SALVO) TODO - NA WORKSTATION DELL O HORARIO Q A BIOS LIGA É EM UTC E O CCRON RODA NO HORARIO DO SISTEMA, POR ISSO O SCRIPT ESTÁ PARA VERIFICAR SE SÃO AS 8 ANTES DE EXECUTAR E O HORARIO DE AUTO-ON NA BIOS É 11HRS
TODO - OS USUARIOS LINUX SAO O BONITA (PARA TUDO) E O METABASE (PARA O METABASE)

Passo 0 - Preparação[editar]

Legenda:
Em vermelho temos passos importantes e que requerem mais atenção
Em azul temos passos opcionais, não muito importantes, comentarios e observações

Seção 0.1 - Credenciais de superusuário do servidor e usuário root do MySQL [editar]

São necessárias as senhas de um usuário que pode executar comandos com sudo (superusuário) no servidor e a senha do usuário root da base de dados - não é possível prosseguir sem as mesmas - estes dados não se encontram na wiki por questões de segurança, se não souber pergunte a seu superior

Seção 0.2 - Guias sobre sistemas, programas e credenciais secundárias [editar]

Antes de começar, é necessário entrar no servidor de produção através do SSH, estude brevemente estes guias para isso - eles também serão necessários mais a frente:

Seção 0.3 - Validação do pacote de Backup [editar]

TODO - criar uma forma de que sejam calculados os hashes dos arquivos de backup quando é realizado o backup e depois validar esses hashes antes do backup for ser restaurado

Passo 1 - Restauração da Base de dados (MySQL)[editar]

Seção 1.1 - Instalação do MySQL [editar]

1.1.1) Instalar a base de dados. Executar comando: 
                                                                          
"sudo apt install mysql-server"

Seção 1.2 - Encontrar senha padrão do MySQL recém instalado [editar]

1.2.1) (PASSO A SER EXTINTO) Importar a "table user" para a DataBase MySQL do backup (para garantirmos os mesmos usuários, senhas e permissões). Executar este comando no servidor de processos: 
           
"mysqldump -u root -p mysql user > user_table_dump.sql"

1.2.2) Encontrar systemspecificpassword. Executar comando: 

"sudo cat /etc/mysql/debian.cnf"

A senha encontrada em systemspecificpassword será usada no passo seguinte para logar com o usuário debian-sys-maint

Seção 1.3 - Restauração da table user do MySQL [editar]

1.3.1) Restaurar a "table user". Executar comando: 

"mysql -u debian-sys-maint -p mysql < user_table_dump.sql"

Em seguida, digite ou cole a senha no prompt de senha 

1.3.2) Reiniciar o MySQL. Executar comando:  
 
"sudo service mysql restart"

1.3.3) Verificar se deu certo. Logue no mysql com a credencial root da base antiga. Executar comando:  
  
"mysql -u root -p"

Em seguida, digite ou cole a senha no prompt de senha

Use o comando: "exit;" para voltar ao terminal

Seção 1.4 - Mover os arquivos da base de dados e ajustar as permissões de acesso aos mesmos [editar]

1.4.1) Parar o MySQL para mover os arquivos e ajustar as permissões. Executar comando:

"sudo service mysql stop"

1.4.2) Configurar o MySQL para armazenar a base de dados em /dados/mysql. Executar comando:

"sudo nano /etc/mysql/my.cnf"

Caso não exista adicionar linha "[mysqld]" seguida de "datadir = /dados/mysql" na linha seguinte. pode ser adicionado no final do arquivo

1.4.3) Copiar base de dados para o novo local com: 
 
"sudo cp -R -p /var/lib/mysql/dados"
 
Supondo que o disco extra com mais espaço está em /dados/mysql 

observação: (este passo é para OSs que usam o apparmor (como o ubuntu server), pode variar para outros OSs)
1.4.4) Arrumar permissões do apparmor. Executar comando: 
 
"sudo nano /etc/apparmor.d/usr.sbin.mysqld"
 
Subtituir tudo que começar com "/var/lib/mysql" para o novo local. Neste caso "/dados/mysql"

1.4.5) Iniciar o MySQL novamente após mover os arquivos e ajustar as permissões. Executar comando:

"sudo service mysql start"

1.4.6) Verificar que está funcionando. Executar comando: 

"sudo service mysql status"
 
Confira se não há erro, se houver terá de ser solucionado fora do escopo deste guia, porém muito provavelmente estará relacionado a algum passo anterior mal executado

Seção 1.5 - Restaurar as bases de dados [editar]

1.5.1) Criar as bases de dados com os mesmos nomes das originais.

Logue na base de dados. Executar comando:

"mysql -u root -p"

 Após logar, execute separadamente os comandos:

"create database eap_bdm_bonita_prod;" 
"create database eap_bonita_prod;"

Use o comando: "exit;" para voltar ao terminal

1.5.2) Restaure as bases de dados. execute separadamente os comandos:

"mysql -u root -p eap_bonita_prod < bonita_db_*.sql"
"mysql -u root -p eap_bdm_bonita_prod < bonita_dbm_*.sql"

Seção 1.6 - Reiniciar o servidor [editar]

Recomendado:
1.6.1) Reiniciar o servidor para liberar toda a RAM que o mysql alocou. Executar o comandos: 

"sudo reboot"

Passo 2 - Set-up do script de back-up e atualização da organization[editar]

Configurar NFS para armazenar o backup em outro servidor
Crontab com o script de backup(6 da manhã) e de atualização da ?organization?(5 da manhã)

Passo 3 - Restauração do Bonita[editar]

Restaurar o bonita recolocando ele em /opt
Colocar o service file para o systemd no seu devido local e habilitar
Fazer o set-up do script de sincronização dos papeis com os servidores da UFSC

Passo 4 - Postfix[editar]

Passo 5 - Nginx[editar]

instalar interpretador de PHP

Englobar todo os sites "rodados" pelo nginx com seus diversos serviços como:
As bridges para o bonita
Gerador de PDF
Wiki

Passo 6 - Metabase[editar]

Suas configurações consistem em um enviroment file chamado pelo seu service file do systemd Instalado como um .JAR separado em seu próprio usuário e é acessado pelo seu subdominio usando um reverse proxy do nginx