Anda di halaman 1dari 4

MANUAL CONFIGURAO DE SERVIDOR REDUNDANTE GPWEB

Manual criado por Guilherme Schneider

Servidor primrio
Para uma relao mais segura entre os servidores, fizemos uso de uma ferramenta do ssh o ssh-copy-id. Com essa ferramenta poderemos usar este tnel criptografado do ssh sem necessidade de digitar senha, pois os servidores ou servidor-cliente trabalharo com chave. Primeiro crie (neste caso como root) a id_rsa.*: # ssh-keygen -t rsa Podemos usar a opo -b (1024, 512, 256), porm quanto maior a chave de criptografia, maior a segurana e menor a velocidade de transferncia Deve aparecer conforme exemplo abaixo: Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): (APENAS TECLE ENTER) Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: 7b:17:a5:9b:88:45:2b:2b:36:b3:f3:28:21:fc:1f:aa root@servidor The key's randomart image is: +--[ RSA 2048]----+ | | | | | . . | | ..o | |. Soo | | o. *.+ | | o .* + o + | | oo.B . . | | E..o+o. | +-----------------+

Ao fim dois arquivos seram gerados um arquivo id_rsa e id_rsa.pub, ento usamos o comando para copiar nossa chave para o servidor remoto: ssh-copy-id -i /root/.ssh/id_rsa.pub root@ip_do_servidor_replica O servidor remoto ir pedir uma confirmao da chave, basta digitar <yes> e pronto a sua chave pblica ser exportada para o outro servidor no arquivo ~/.ssh/authorized_keys. Se o arquivo no existir ele criar. a saida seria assim: root@servidor ~ $ ssh-copy-id -i ~/.ssh/id_rsa.pub root@servidor The authenticity of host 'deltha (127.0.1.1)' can't be established. RSA key fingerprint is f5:3a:51:25:30:03:77:8c:9e:6c:fa:33:79:49:7f:b2. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'servidor' (RSA) to the list of known hosts. root@servidor's password: Now try logging into the machine, with "ssh 'root@servidor'", and check in: .ssh/authorized_keys to make sure we haven't added extra keys that you weren't expecting. Basta agora testar se no pedir senha para o servidor de replica: ssh usuario@servidor_replica

Para o backup deve-se primeiramente saber onde est o executvel do mysqldump (programa que usaremos para gerar um arquivo .sql do banco), neste caso usamos o mysqldump do Xampp (fica em /opt/lampp/bin/mysqldump). Se voc acabou de instalar o mysql (ou o xampp) o usurio root no tem senha para acesso ao banco, porm necessrio que se tenha criado uma senha para o mesmo ou algum outro usurio com permisses no banco. Obs. No recomendo que seja utilizado o usurio root, e sim um usurio com permisso apenas nesse banco, pois a senha fica em claro dentro do arquivo. O script abaixo faz a sincronizao das pastas dos servidores e atualiza o .sql automaticamente. Segue o exemplo de sincronismo apenas da pasta anexos, aconselho fazerem tambm da pasta anexos_modelos e pasta arquivos. Crie um arquivo com permisso de execuo dentro do arquivo /etc/cron.d No nosso caso criei dentro de /etc/cron.hourly/ onde ele roda o script de hora em hora. Observao: (adiantei 3 minutos o servidor_replica para rodar o script na sequncia)

Para criar o arquivo digite: # vi nomedoarquivodebkp.sh Cole o seguinte contedo nele (shift+insert) e altere os dados de acordo com a sua realidade: #!/bin/bash #Exporta a base de dados sql do servidor que est em uso, para aps importar no outro (j fica ai um #backup do banco de dados em .sql) /opt/lampp/bin/mysqldump -u usuariocompermissonobanco -psenha@ gpweb > /BKP/gpweb.sql #Envia o arquivo de chaves echo "Autenticando servidores..." ssh-copy-id -i /root/.ssh/id_rsa.pub root@ip_server_replica #A Ferramenta Rsync faz o sincronismo echo "Sincronizando arquivos..." rsync -Cravzp --rsh="ssh -l root" /opt/lampp/htdocs/gpweb/anexos/ root@ip_server_replica:/opt/lampp/htdocs/gpweb/anexos/

Servidor secundrio
crie um arquivo no cron.d conforme o exemplo doi outro servidor e cole o seguinte contedo (alterando conforme sua realidade): /opt/lampp/bin/mysql -u gpweb -psenha -D gpweb < /BKP/gpweb.sql Onde: -u gpweb o usurio com permisso no banco -D gpweb o nome do banco < significa que ele est enviando o arquivo /BKP/gpweb.sql para o banco citado antes do sinal < /BKP/gpweb.sql o nome do arquivo .sql e a sua localizao no computador.