[This blog was syndicated from http://blog.grallandco.com]
Introducción
Cuando buscaba una forma más eficaz de crear mi clúster, pregunté a algunos administradores de sistemas qué herramientas debía utilizar para hacerlo. La respuesta que obtuve durante OSDC no era Marionetani Chefpero fue Ansible.
Este artículo te muestra cómo puedes configurar y crear fácilmente un cluster Couchbase desplegado y muchas cajas linux... ¡y lo único que necesitas en estas cajas es un Servidor SSH!
Gracias a Jan-Piet Mens que fue una de las personas que me convenció de usar Ansible y respondió a las preguntas que tenía sobre Ansible.
Puede ver la demostración a continuación, y/o consultar todos los detalles en el párrafo siguiente.
Ansible
Ansible es un software de código abierto que permite al administrador configurar y gestionar muchos ordenadores a través de SSH.
No voy a entrar en todos los detalles acerca de la instalación, sólo tienes que seguir los pasos documentados en la Guía de introducción. Como puedes ver en esta guía, sólo necesitas Python y algunas otras librerías y clonar el proyecto Ansible desde Github. Así que espero que tengas Ansible trabajando con varios servidores en los que quieras desplegar Couchbase.
También para estos primeros scripts estoy usando root en mi servidor para hacer todas las operaciones. Así que asegúrese de que ha registrado las claves ssh de root en su servidor de administración, desde donde está ejecutando los scripts de Ansible.
Crear un clúster Couchbase
Así que antes de entrar en los detalles del script de Ansible es interesante explicar cómo se crea un Cluster de Couchbase. Así que aquí están los 5 pasos para crear y configurar un clúster:
Instale Couchbase en cada uno de los nodos del cluster, tal y como se documenta aquí.
Tome uno de los nodos e "inicialice" el cluster, utilizando cluster-init mando.
Añade los otros nodos al cluster, utilizando servidor-add mando.
Así que el objetivo ahora es crear un Playbook de Ansible que ejecute estos pasos por ti.
Ansible Playbook para Couchbase
Lo primero que necesitas es tener la lista de hosts a los que quieres dirigirte, así que he creado un archivo archivo hosts que contiene todos mis servidores organizados en 2 grupos:
El grupo [couchbase-main] es sólo uno de los nodos que dirigirá la instalación y configuración, como probablemente ya sepas, Couchbase no tiene ningún maestro... Todos los nodos del cluster son idénticos.
Para facilitar la configuración del clúster, he creado otro archivo que contiene todos los parámetros que deben enviarse a los distintos comandos. Este archivo se encuentra en la carpeta group_vars/all véase la sección Separación de datos específicos de host y grupo en la documentación.
# Usuario y contraseña del administrador admin_user: Administrador admin_password: contraseña
# de ram para el cluster cluster_ram_quota: 1024
Cubo # y réplicas bucket_name: ansible bucket_ram_quota: 512 número_réplicas: 2
Ahora necesitamos ejecutar taks específicos en el servidor "principal":
Inicialización del cluster usando el CLI de Couchbase, en las líneas 06 y 07
A continuación, el sistema debe pedir a todos los demás servidores que se unan al clúster. Para esto el sistema necesita obtener las diferentes IP y para cada dirección IP ejecutar el comando add-server con la dirección IP. Que yo sepa no es posible obtener la dirección IP desde el archivo YAML del playbook principal, así que le pido al sistema que genere un script shell para añadir cada nodo y ejecute el script.
Estoy añadiendo el parámetro -vv para que puedas ver más información sobre lo que está ocurriendo durante la ejecución del script.
Esto ejecutará todos los comandos descritos en el playbook, y después de unos segundos tendrás un nuevo cluster ¡listo para ser usado! Puedes, por ejemplo, abrir un navegador e ir a la Consola de Administración de Couchase y comprobar que tu cluster está configurado como esperabas.
Como puedes ver es realmente fácil y rápido crear un nuevo cluster usando Ansible.
Tambien he creado un script para desinstalar correctamente el cluster.. solo lanza
Jennifer Garcia es Gerente Senior de Web en Couchbase Inc. Como responsable del sitio web, Jennifer tiene la responsabilidad general de las propiedades del sitio web, incluido el diseño, la implementación, el contenido y el rendimiento.
Traté de usar la receta para instalar couchdb en EC2, hubo una pequeña modificación que debo añadir. el comando cluster-init falló debido al error \'Connection refused\'. Aparentemente el servidor aún no estaba en marcha, así que añadí un comando de pausa durante 30 segundos antes del cluster-init y ¡boom, funcionó! El código: - nombre: Reposo durante 30 segundos para finalizar la instalación pausa: segundos=30
También puedes consultar lo siguiente. Ejecutando cluster multi-nodos usando Virtualbox/Centos (o ubuntu) instancias usando vagrant/ansible. Simplemente funciona, suponiendo que todos los parámetros establecidos correctamente. Yo estaba en marcha y funcionando en 20 minutos. Asegúrese de que está en línea mientras lo hace, ya que descarga un montón de cosas para que esto suceda.
Esta información es impresionante; estoy inspirado con su estilo de escritura post & cómo continuamente usted describe este tema. Después de leer tu post, gracias por tomarse el tiempo para discutir esto, me siento feliz por ello y me encanta aprender más sobre este tema.
Gracias, Consultoría DevOps
en lugar de utilizar una plantilla de script, debe utilizar
con_elementos
ansible statement:- nombre: añadir nodos
shell: \ "/opt/couchbase/bin/couchbase-cli server-add -c 127.0.0.1:8091 -u {{couchbase_admin}} -p {{couchbase_admin_password}} -p {{contraseña_admin_couchbase}} –server-add={{ hostvars[item][\’ansible_eth0\’][\’ipv4\’][\’address\’] }}:8091 –server-add-username={{couchbase_admin}} -server-add-password={couchbase_admin_password}}"
with_items: groups[\'couchbase-nodos\']
esto cierra la tarea ansible. (¿Sabía usted que ansible era impresionante? :) )
Gracias por esto voy a probar y actualizar mi libro de jugadas ...
Me gusta mucho Ansible y tus consejos lo hacen aún mejor.
Traté de usar la receta para instalar couchdb en EC2, hubo una pequeña modificación que debo añadir. el comando cluster-init falló debido al error \'Connection refused\'. Aparentemente el servidor aún no estaba en marcha, así que añadí un comando de pausa durante 30 segundos antes del cluster-init y ¡boom, funcionó!
El código:
- nombre: Reposo durante 30 segundos para finalizar la instalación
pausa: segundos=30
lo que una buena noche de sueño puede hacer :)
También puedes consultar lo siguiente. Ejecutando cluster multi-nodos usando Virtualbox/Centos (o ubuntu) instancias usando vagrant/ansible. Simplemente funciona, suponiendo que todos los parámetros establecidos correctamente. Yo estaba en marcha y funcionando en 20 minutos. Asegúrese de que está en línea mientras lo hace, ya que descarga un montón de cosas para que esto suceda.
https://github.com/couchbasela…
Esta información es impresionante; estoy inspirado con su estilo de escritura post & cómo continuamente usted describe este tema. Después de leer tu post, gracias por tomarse el tiempo para discutir esto, me siento feliz por ello y me encanta aprender más sobre este tema.
Gracias,
Consultoría DevOps