[Este blog foi distribuído pelo site http://blog.grallandco.com].
Introdução
Quando estava procurando uma maneira mais eficaz de criar meu cluster, perguntei a alguns administradores de sistemas quais ferramentas eu deveria usar para fazer isso. A resposta que recebi durante OSDC não foi Marionete, nem Chefe de cozinha, mas foi Ansible.
Este artigo mostra como você pode configurar e criar facilmente um cluster do Couchbase implantado em várias caixas Linux... e a única coisa de que você precisa nessas caixas é um servidor SSH!
Agradecimentos a Jan-Piet Mens que foi uma das pessoas que me convenceu a usar o Ansible e respondeu às perguntas que eu tinha sobre o Ansible.
Você pode assistir à demonstração abaixo e/ou ver todos os detalhes no próximo parágrafo.
Ansible
O Ansible é um software de código aberto que permite ao administrador configurar e gerenciar vários computadores por meio de SSH.
Não entrarei em todos os detalhes sobre a instalação, basta seguir as etapas documentadas no Guia de Introdução. Como você pode ver neste guia, você só precisa do Python e de algumas outras bibliotecas e clonar o projeto Ansible do Github. Portanto, espero que você tenha o Ansible funcionando com seus vários servidores nos quais deseja implantar o Couchbase.
Além disso, para esses primeiros scripts, estou usando o root no meu servidor para fazer todas as operações. Portanto, certifique-se de ter registrado as chaves ssh do root no seu servidor de administração, de onde está executando os scripts do Ansible.
Criar um cluster do Couchbase
Portanto, antes de entrar nos detalhes do script Ansible, é interessante explicar como criar um cluster do Couchbase. Portanto, aqui estão as 5 etapas para criar e configurar um cluster:
Instale o Couchbase em cada nó do cluster, conforme documentado aqui.
Portanto, o objetivo agora é criar um Ansible Playbook que execute essas etapas para você.
Manual do Ansible para o Couchbase
A primeira coisa que você precisa é ter a lista de hosts que deseja segmentar, portanto, criei um arquivo arquivo hosts que contém todos os meus servidores organizados em dois grupos:
[couchbase-main] vm1.grallandco.com
[nós do couchbase] vm2.grallandco.com vm3.grallandco.com
O grupo [couchbase-main] é apenas um dos nós que conduzirão a instalação e a configuração. Como você provavelmente já sabe, o Couchbase não tem um mestre... Todos os nós do cluster são idênticos.
Para facilitar a configuração do cluster, criei outro arquivo que contém todos os parâmetros que devem ser enviados a todos os vários comandos. Esse arquivo está localizado no diretório group_vars/all consulte a seção Separação de dados específicos de host e grupo na documentação.
Usuário e senha do administrador do # admin_user: Administrador admin_password: senha
Cota de RAM de # para o cluster cluster_ram_quota: 1024
Balde # e réplicas bucket_name: ansible bucket_ram_quota: 512 num_replicas: 2
- Nome: Instalação do Couchbase hosts: todos usuário: root
tarefas:
- nome: download do pacote do Couchbase get_url: url=http://packages.couchbase.com/releases/2.0.1/couchbase-server-enterprise_x86_64_2.0.1.deb dest=~/.
Agora precisamos executar tarefas específicas no servidor "principal":
Inicialização do cluster usando a CLI do Couchbase, nas linhas 06 e 07
Em seguida, o sistema precisa solicitar a todos os outros servidores que entrem no cluster. Para isso, o sistema precisa obter os vários IPs e, para cada endereço IP, executar o comando add-server com o endereço IP. Até onde sei, não é possível obter o endereço IP do arquivo YAML do playbook principal, portanto, peço ao sistema que gere um script de shell para adicionar cada nó e executar o script.
Estou adicionando o parâmetro -vv para permitir que você veja mais informações sobre o que está acontecendo durante a execução do script.
Isso executará todos os comandos descritos no playbook e, após alguns segundos, você terá um novo cluster pronto para ser usado! Você pode, por exemplo, abrir um navegador e acessar o Console de administração do Couchase e verificar se o cluster está configurado conforme o esperado.
Como você pode ver, é muito fácil e rápido criar um novo cluster usando o Ansible.
Também criei um script para desinstalar corretamente o cluster... basta iniciar
Jennifer Garcia é gerente sênior de Web na Couchbase Inc. Como gerente do site, Jennifer tem a responsabilidade geral pelas propriedades do site, incluindo design, implementação, conteúdo e desempenho.
Tentei usar a receita para instalar o couchdb no EC2, mas houve uma pequena modificação que eu deveria acrescentar. O comando cluster-init falhou devido ao erro \'Connection refused\'. Aparentemente, o servidor ainda não estava funcionando, então adicionei um comando de pausa de 30 segundos antes do cluster-init e pronto, funcionou! O código: - nome: Dormir por 30 segundos para concluir a instalação pausa: segundos=30
Você também pode dar uma olhada no seguinte. Execução de cluster de vários nós usando instâncias do Virtualbox/Centos (ou Ubuntu) usando vagrant/ansible. Simplesmente funciona, supondo que todos os parâmetros estejam definidos corretamente. Eu estava pronto e funcionando em 20 minutos. Certifique-se de estar on-line enquanto estiver fazendo isso, pois ele baixa um monte de coisas para que isso aconteça.
Essas informações são impressionantes; estou inspirado com o estilo de redação de sua postagem e com a forma contínua com que você descreve esse tópico. Depois de ler sua postagem, obrigado por dedicar seu tempo para discutir esse assunto, estou feliz com isso e adoro aprender mais sobre esse tópico.
Obrigado, Consultoria em DevOps
em vez de usar um modelo de script, você deve usar
com_itens
declaração responsável:- name: add nodes
shell: \"/opt/couchbase/bin/couchbase-cli server-add -c 127.0.0.1:8091 -u {{couchbase_admin}} -p {{couchbase_admin_password}} –server-add={{ hostvars[item][\’ansible_eth0\’][\’ipv4\’][\’address\’] }}:8091 –server-add-username={{couchbase_admin}} -server-add-password={{{couchbase_admin_password}}\"
with_items: groups[\'couchbase-nodes\']
isso faz o loop da tarefa do ansible. (Você sabia que o ansible era incrível? :) )
Obrigado por isso, vou testar e atualizar meu manual...
Gosto muito do Ansible e suas dicas o tornam ainda melhor!
Tentei usar a receita para instalar o couchdb no EC2, mas houve uma pequena modificação que eu deveria acrescentar. O comando cluster-init falhou devido ao erro \'Connection refused\'. Aparentemente, o servidor ainda não estava funcionando, então adicionei um comando de pausa de 30 segundos antes do cluster-init e pronto, funcionou!
O código:
- nome: Dormir por 30 segundos para concluir a instalação
pausa: segundos=30
o que uma boa noite de sono pode fazer :)
Você também pode dar uma olhada no seguinte. Execução de cluster de vários nós usando instâncias do Virtualbox/Centos (ou Ubuntu) usando vagrant/ansible. Simplesmente funciona, supondo que todos os parâmetros estejam definidos corretamente. Eu estava pronto e funcionando em 20 minutos. Certifique-se de estar on-line enquanto estiver fazendo isso, pois ele baixa um monte de coisas para que isso aconteça.
https://github.com/couchbasela…
Essas informações são impressionantes; estou inspirado com o estilo de redação de sua postagem e com a forma contínua com que você descreve esse tópico. Depois de ler sua postagem, obrigado por dedicar seu tempo para discutir esse assunto, estou feliz com isso e adoro aprender mais sobre esse tópico.
Obrigado,
Consultoria em DevOps