Pplware

Tutorial: Instalar uma Central telefónica baseada em Elastix (P. II)

As redes de dados têm evoluído significativamente nos últimos anos, abrindo portas a que novos serviços assentem nestas infraestruturas. Se há uns anos atrás as chamadas telefónicas eram efectuadas exclusivamente pelo serviço telefónico tradicional, hoje em dia os serviços de voz assentam também em redes de dados.

Depois de termos ensinado a instalar o Elastix, hoje vamos aprender a criar um cluster usando o Pacemaker.

Para a configuração de um cluster vamos criar duas máquinas virtuais com Elastix. Neste caso, vamos fazer um clone da máquina criada no primeiro tutorial, com as seguintes alterações:

Após criada a segunda máquina, iniciamos os dois nós para começarmos a configuração.

Primeiro vamos anotar os IPs dos dois nós. No nosso caso, vamos ter a seguinte configuração:

Nó 1:

Nó 2:

Nota: para todos os comandos que vamos executar a seguir deverão ter privilégios de root. Caso tenham criado um outro utilizador, necessitam do comando sudo antes de cada comando.

De seguida, vamos necessitar de editar alguns ficheiros de texto. Por omissão, esta distribuição não vem com o editor nano, mas quem quiser instalar basta executar o comando:

yum install nano

Editamos o ficheiro /etc/hosts e adicionamos as seguintes linhas:

  • “IP_primeiro_nó” node1.pplware.com node1
  • “IP_segundo_nó” node2.pplware.com node2

Gravamos o ficheiro e saímos. Reiniciamos ambas as máquinas para assumirem o novo nome dado anteriormente.

De seguida, vamos definir alguns parâmetros no apache editando o ficheiro /etc/httpd/conf.d/status.conf. Depois devem proceder as seguintes alterações:

<Location /server-status>
SetHandler server-status
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
</Location>

Guardamos o ficheiro e saímos do editor.

 

Instalar Pacemaker

Vamos então instalar o Pacemaker usando o comando:

yum install pacemaker pcs

Após a instalação estar finalizada, executamos os seguintes comandos:

systemctl start pcsd.service
systemctl enable pcsd.service

Sendo o primeiro para iniciar o pcs daemon, que é utilizado para sincronizar o Corosync e o segundo para iniciar o pcs daemon cada vez que a máquina é iniciada.

Depois de instalados estes pacotes, foi criado um novo utilizador no sistema com o nome hacluster.

Alteramos a palavra passe desse utilizador com: passwd hacluster

De seguida, verificamos se a firewall está activa usando o comando:

firewall-cmd --state

Caso não esteja, activamos com o seguinte comando:

systemctl start firewalld.service

Agora é a vez de adicionar uma excepção na firewall para o Cluster

firewall-cmd --permanent --add-service=high-availability 

e reiniciamos a firewall com o comando:

firewall-cmd –reload

A partir deste momento, os dois nós já devem conseguir comunicar. Portanto vamos executar os comandos seguintes apenas no primeiro nó.

Configuramos a autenticação do cluster com o comando:

pcs cluster auth node1 node2

No campo Username colocamos “hacluster” e no campo Password a palavra passe definida anteriormente.

Se esta informação estiver correta, devemos receber a mensagem:

De seguida, vamos correr o comando:

pcs cluster setup --name clusterPplware node1 node2

Se tudo correr bem, devem receber uma mensagem semelhante à imagem apresentada em baixo:

Após isto, a configuração do Corosync foi criada. Podem aceder ao ficheiro criado em /etc/corosync/corosync.conf

Podemos então iniciar o cluster com: pcs cluster start –all e de seguida executar os comandos:

Para o Corosync e o Pacemaker iniciarem quando as máquinas forem iniciadas. Estes dois últimos comandos devem ser executados nos dois nós.

Podemos verificar se o Cluster está a funcionar correctamente com o comando:

pcs status

Após terminados com sucesso os passos anteriores, vamos desativar o STONITH e o Quorum. STONITH é uma sigla que significa “Shoot The Other Node In The Head”, ou seja, quando um Cluster não consegue determinar o estado de um dos seus nós, é aplicada uma técnica denominada de “Fencing” que faz o Cluster voltar ao seu estado normal.

Node Level Fencing garante que um nó não utiliza todos os recursos.

Como a configuração do Node Level Fencing varia bastante para cada ambiente(Windows, Mac OS,…), vamos desactivá-lo para este tutorial.

Um Quorum é criado quando  mais de metade dos seus nós estão online. O comportamento por omissão é de parar o Cluster quando não se verifica esse estado, por isso vamos também desativá-lo.

Estas alterações são necessárias nos dois nós.

 

Criação de IP Virtual (floating IP)

De seguida, vamos criar um IP virtual o qual será partilhado pelos dois nós e pelo qual poderemos aceder à configuração do Elastix.

Para tal, executamos o comando apenas no primeiro nó:

pcs resource create Cluster_PPLWARE ocf:heartbeat:IPaddr2 ip=192.168.1.115 cidr_netmask=24 op monitor interval=20s

Com pcs status verificamos se o Cluster_PPLWARE foi iniciado

Reiniciamos ambos os nós para assumirem as últimas configurações

Após o reiniciarmos ambos os nós, caso o Cluster não esteja iniciado basta activá-lo com o comando:

sudo pcs resource enable Cluster_PPLWARE

E está feita a configuração do Cluster. Podemos comprovar entrando no IP virtual que atribuímos e será apresentada uma página do tipo:

E está feita esta configuração também. Como referido, com este tutorial passamos a ter um serviço de alta disponibilidade com dois nós a servir o mesmo serviço.

 

No terceiro e último tutorial vamos ensinar a criar extensões e configurar softphones.

Exit mobile version