# Atualização via GIT

Olá, amigos terráqueos.

Use esse artigo com muita sabedoria para disseminar todos os problemas de sua vida atualizando seu SNEP 3.06.02 para a versão novissíma em folha do SNEP, também conhecida como "essa versão só tem no bitbucket, fala com o dev".

Itens que você vai precisar:

  1. Horário de downtime

Converse com o cliente ANTES porfavor. Agende essa atualização, afinal de contas, a central pode ficar indisponível para uso.

Cada ambiente tem sua particularidade, em alguns o processo vai demorar 15 minutos, em outros 2 horas, cabe a você, ó grande analista, checar isso e se posicionar com o cliente. Conto contigo!

  1. Noções básicas sobre GIT

Você não precisa ser o rei do DevOps, muito menos o próprio Torvalds, só precisa saber o que está fazendo e qual a mágica está sendo utilizada. Se prepare para este processo, use estes links para te ajudar.

Pra quem gosta de ler: -----> GIT Primeiros passos (opens new window)

Pra quem gosta de ouvir: -----> Lambda3 Podcast 3 – Git (opens new window)

Pra quem gosta de ver e ouvir: -----> Curso de Git para iniciantes - Aula 1 (opens new window)

Pra quem não sabe o que quer: -----> Você está na profissão certa? Faça o teste e descubra (opens new window)

  1. Calma e confiança

Pode parecer sacanagem ou alguma outra pegadinha, mas não. Ter calma para executar o procedimento e "confiar no próprio taco" são duas coisas beeeem importantes nesse ponto. Preciso que você saiba da complexidade do ambiente que está mexendo, de tudo que o cliente espera e de como esse processo NÃO pode ser traumático pra ele.

  1. Backup

Deus faz milagre, sysadmin backup. Não despreze as leis de Murph, tenha consigo um bom backup e não terás problema. Lembre-se, antes do rm vale bastante um mv.

Banco de dados então, esse nem se fala, faça até 3 backups distintos para evitar riscos. O que não vale é ficar a madrugada refazendo central por um * (asterisco) no lugar errado.

  1. Permissão e acesso ao bitbucket

Esse passo é tranquilo, você precisa ter sua conta criada e com permissão para fazer download do branch develop na conta da Opens.

Caso ainda não tenha conta, entre em contato com o time de engenharia para providenciar o quanto antes.

Sem mais delongas, confio em ti!

# Cenário

  • Debian 8 e adjacentes
  • SNEP versão 3.06
  • Storage com gravações

# Hands ON

Instale o GIT no servidor do cliente.
nem preciso falar que você precisa checar todos os repositórios, né?

apt-get update && apt-get install git

Por segurança, pare o Asterisk e desmonte o storage de gravação. Lembre-se de checar qual o dispositivo usando o df -h e o fdisk -l.

No nosso caso, usarei como exemplo o /dev/sdb1.

/etc/init.d/asterisk stop

umount /dev/sdb1

Vá até o diretório padrão do apache e mova o diretório atual do SNEP para bkp, assim:

cd /var/www/html/

mv snep/ snep-bkp

Faça agora, download do SNEP usando o comando GIT:

Nota: Informe seu usuário e senha do bitbucket.

git clone --recursive -b master https://bitbucket.org/snepdev/snep-3

Renomei o diretório que foi baixado de snep-3 para snep:

IMPORTANTE: NÃO REMOVA, DEPOIS VAMOS PRECISAR DO DIRETÓRIO ARQUIVOS.

mv snep-3/ snep/

Faça os updates de versão. Use usuário snep, como abaixo e aquela senha padrão do banco:

mysql -usnep -p snep < snep/install/database/update/3.07/update.sql 

mysql -usnep -p snep -e "ALTER TABLE peers ADD COLUMN blf VARCHAR(3) DEFAULT NULL;"

Crie os diretórios para os arquivos de som:

mkdir -p /var/www/html/snep/sounds

cd /var/www/html/snep/sounds/

ln -sf /var/lib/asterisk/moh/ moh

ln -sf /var/lib/asterisk/sounds/pt_BR/ pt_BR

Feito os updates de banco e criado os diretórios, vamos ceder as permissões necessárias ao SNEP:

cd ../..
find . -type f  -exec chmod 640 {} \; -exec chown www-data:www-data {} \;

find . -type d  -exec chmod 755 {} \; -exec chown www-data:www-data {} \;

chmod +x /var/www/html/snep/agi/*

Pode ser que esse passo demore um pouco, mantenha a calma, está tudo bem.

Mova as gravações da antiga pasta arquivos para a nova:

cd /var/www/html/

mv snep-bkp/arquivos/* snep/arquivos/.

Crie a nova pasta storage1 e monte o disco novamente:

mkdir snep/arquivos/storage1

mount -a 

Acesse seu novo SNEP, faça todos os testes necessários e seja feliz.

Deixe seu like, curta esse video e se inscreve no canal. Vamos bater meta de like pessoal.