RASCUNHO cloudManager - RASCUNHO cloudManager - RASCUNHO cloudManager
RASCUNHO cloudManager - RASCUNHO cloudManager - RASCUNHO cloudManager
esteban dortta
junho 4, 2012

cloudManager pretende ajudar na atualizao dos ns que compem uma nuvem.

Existem alguns comandos bsicos no cloudManager: cmscp, cmrsync, cmstop, cmplay, cmstatus, cmdo

Toda a configurao reside no arquivo /etc/cloudManager.ini

cloudManager no trabalha com configuraes heterogneas, todos os arquivos devem ter a mesma estrutura de diretrios.

cloudManager s trabalha com apache2.x

EXEMPLO DE cloudManager.ini:
  [nodes]
  A=10.0.2.12:80
  B=10.0.2.13:80
  C=10.0.2.14:81
  D=10.0.2.15:81
  E=10.0.2.16:8080

  [referee]
  ip=10.0.2.151
  config=/etc/apache2/includes/proxybalancer
  clusterID=meuCluster
  clusterFolder=cs

No exemplo anterior, descrevemos a nuvem com os ns A,B,C,D e E com seus respectivos IPs e um rbitro com seu IP o local e nome do arquivo de configurao do apache o identificador do cluster e o nome da pasta que far de alias.

A mquina desde a qual o clusterManager ser operado, dever ter acesso livre aos ns e ao rbitro.  Isso se resolve gerando um certificado e instalando a chave pblica gerada nos micros envolvidos.

EXEMPLO DE GERAO DE CHAVE: (caso no tenha chave gerada, se tiver use a que est em /root/.ssh/id_rsa.pub)
  Na mquina que rodar o cloudManager faa:
  $ sudo su
  $ ssh-keygen -t rsa
  (d enter em tudo)

Isso gerar uma chave em /root/.ssh/id_rsa*.  A parte pblica  a que vc precisa exportar para cada micro do n e no rbitro.  Para exportar a chave pblica faa assim:
  $ sudo scp /root/.ssh/id_rsa.pub 10.0.2.12:/root/cloudManager.pub
  (vai pedir a senha do root no destino)
  depois entre no micro destino para habilitar a chave
  $ sudo ssh 10.0.2.12
  verifique se existe a pasta /root/.ssh/
  caso no exista, crie a pasta com direitos 0644 (ou 0600 se preferir)
  $ mkdir -m 0644 /root/.ssh/
  agora acrescente a chave s chaves j instaladas nesse micro
  $ cat /root/cloudManager.pub >> /root/.ssh/authorized_keys
  $ exit

Se tudo deu certo, voc poder fazer ssh desde a mquina do cloudManager sem senha
  $ ssh 10.0.2.12
  (ele deve entrar sem pedir senha.  caso no de certo, google nele pois os problemas variam desde a gerao da senha at a configurao do n passando pela presena ou no de algum controle para a porta 22 na rede)

Repita a exportao da mesma chave em todos os micros do n mais o rbitro.  Lembre que se vc j tem a chave pblica gerada no precisa gera-la.

Uma vez as chaves exportadas,  possvel fazer uso dos comandos cmscp e cmrsync como nos seguintes exemplos:
  $ cd /var/www/teste/
  $ cmscp *.html A:/var/www/teste/
Isso copiar todos os arquivos com extenso html para o n chamado 'A' na pasta indicada.
At aqui no h vantagems a um scp, porm, quando usado com o '*' o cmscp ganha poder
  $ cd /var/www/teste/
  $ cmscp *.html *:/var/www/teste/
Isso far com que todos os arquivos .html da pasta /var/www/teste/ sejam copiados para a pasta /var/www/teste/ de cada um dos ns.
Se quiser copiar s para alguns ns especficos, separe os nomes dos ns por vrgulas
  $ cd /var/www/teste/
  $ cmscp *.html B,D:/var/www/teste/

O dito para cmscp vale para cmrsync.  Com esses dois comandos j  possvel atualizar o conjunto de servidores de uma s vez.

CONTROLANDO A NUVEM
Os comandos cmstop, cmplay e cmstatus servem para controlar a nuvem.  Podemos controlar a nuvem inteira ou somente um n.
Por exemplo, o comando seguinte estacionar o n chamado 'B'.
  $ cmstop B
Isso quer dizer que ele ser tirado do balancer do apache e o servio ser reiniciado no rbitro.  O comando oposto  cmplay e pode ser usado com um, vrios ou todos os ns
  $ cmplay C,D

No exemplo colocado logo acima, indicamos ao cloudManager que o arquivo de configurao  /etc/apache2/includes/proxybalancer.  Esta verso do cloudManager  destrutiva.  Isso quer dizer que os comandos cmstop e cmplay criam uma nova verso desse arquivo sem prestar ateno ao que l tenha.

Abaixo, uma mostra do que ele produz com a configurao indicada logo acima.
  <Proxy balancer://meuCluster>
     BalancerMember http://10.0.2.12:80
     BalancerMember http://10.0.2.13:80
     BalancerMember http://10.0.2.14:81
     BalancerMember http://10.0.2.15:81
     BalancerMember http://10.0.2.16:8080
  </Proxy>
  ProxyPass /cs balancer://meuCluster

