basho-labs.riak-kv

Rol de Ansible para Riak KV & TS

Estado de la Compilación Ansible Galaxy

Ansible Riak es un rol de Ansible diseñado para instalar y configurar Riak KV y TS. En combinación con los hosts de Ansible, se puede usar para configurar un único nodo o un clúster completo.

  1. Instalación
  2. Documentación
  3. Ejemplos
  4. Contribuciones
  5. Hoja de Ruta
  6. Licencia y Autores

Instalación

Dependencias

  • Ansible 2.1+

Instalación desde Ansible Galaxy

$ ansible-galaxy install basho-labs.riak-kv

Luego, referencia el rol en tus playbooks u otros roles usando la clave basho-labs.riak-kv.

Instalación Manual

Para instalar este rol manualmente, clona el repositorio o extrae el paquete de distribución en tu directorio de roles.

Por ejemplo, si usas la ubicación predeterminada para roles, el directorio de roles sería un hermano de tu archivo playbook.yml, roles/. Si clonas este repositorio en tu directorio de roles, deberías referenciar el rol con la clave ansible-riak.

Documentación

Toda la documentación para este rol está incluida en esta sección del README.

Variables

Todas las variables que se pueden usar en este rol se pueden encontrar en el archivo de variables por defecto. Para sobrescribir cualquiera de las variables por defecto, solo necesitas establecerlas en la sección vars: de tu playbook.yml o crear tu propio rol que defina este rol como una dependencia, usando los mismos nombres de variables utilizados en este rol.

Plantillas

Actualmente hay cuatro plantillas incluidas con el rol. La más importante es la plantilla riak.conf.j2, ya que configura los parámetros operativos para Riak KV. Si tienes requisitos operativos específicos para tu anillo que difieren significativamente de la configuración de distribución, puedes sobrescribir esta plantilla con la tuya.

Hay dos formas diferentes de sobrescribir la plantilla por defecto:

  • Sobrescribir la variable riak_conf_template y establecerla en la ruta absoluta / relativa a la plantilla en el sistema local.
  • Crear un nuevo rol que defina este rol como una dependencia y guardar tu archivo de plantilla en el directorio de plantillas utilizando el mismo nombre exacto que la plantilla que deseas sobrescribir, en este caso riak.conf.j2.

Ejemplos

Sobrescribiendo Variables por Defecto a través del Playbook

---
- hosts: riak
  sudo: true
  roles:
    - { role: ansible-riak }
  vars:
    riak_pb_bind_ip: 10.29.7.192
    riak_pb_port:    10017

Sobrescribiendo Variables por Defecto a través de la Dependencia de Rol

Internamente, tenemos un paquete vagrant-ansible que algunos de nosotros usamos para probar nuestras bibliotecas de cliente. También creamos un rol que configura el entorno necesario para nuestras pruebas de biblioteca y declara este rol como una dependencia.

Instalación de Riak TS

---
- hosts: riakts
  sudo: true
  roles:
    - { role: ansible-riak }
  vars:
    riak_package: 'riak-ts'
    riak_backend: leveldb
    riak_node_name: "riak@{{ ansible_default_ipv4['address'] }}"
    riak_shell_group: 'riak-ts'
    riak_anti_entropy: off
  tasks:
    - name: Establecer umbral de advertencia para el tamaño del objeto
      lineinfile: 'dest=/etc/riak/riak.conf line="object.size.warning_threshold = 50K" regexp: "^object.size.warning_threshold ="'

    - name: Establecer umbral máximo para el tamaño del objeto
      lineinfile: 'dest=/etc/riak/riak.conf line="object.size.maximum = 500K" regexp: "^object.size.maximum ="'

Construyendo un Clúster

Para construir un clúster, necesitas indicar a tu nodo Riak que se una al clúster proporcionándole el líder del anillo. Con este rol, hay dos formas de hacer esto. A través del módulo de comando y la herramienta cli riak-admin o a través del módulo Riak de Ansible.

Módulo de Comando

---
- hosts: riak
  sudo: true
  roles:
    - { role: ansible-riak }
  vars:
    ring_leader: [email protected]
  tasks:
    - name: Unirse al clúster
      command: '{{ riak_admin }} cluster join {{ ring_leader }}'

    - name: Verificar el Anillo de Riak
      command: '{{ riak_admin }} cluster status'
      register: riak_ring_status

    - name: Planear el clúster
      command: '{{ riak_admin }} cluster plan'
      when: riak_ring_status.stdout.find('joining') > 0

    - name: Confirmar el clúster
      command: '{{ riak_admin }} cluster commit'
      when: riak_ring_status.stdout.find('joining') > 0

Módulo Riak

El módulo Riak tiene el beneficio adicional de usar las funciones wait_for_ring y wait_for_handoffs.

---
- hosts: riak
  sudo: true
  roles:
    - { role: ansible-riak }
  vars:
    ring_leader: [email protected]
  tasks:
    - name: Unirse al clúster
      riak: command=join target_node={{ ring_leader }}

    - name: Verificar el Anillo de Riak
      command: 'riak-admin cluster status'
      register: riak_ring_status

    - name: Planear el clúster
      riak: command=plan wait_for_ring=300
      when: riak_ring_status.stdout.find('joining') > 0

    - name: Confirmar el clúster
      riak: command=commit wait_for_handoffs=300
      when: riak_ring_status.stdout.find('joining') > 0

Contribuciones

Los mantenedores de este repositorio son ingenieros de Basho y ¡damos la bienvenida a tus contribuciones al proyecto! Puedes comenzar revisando CONTRIBUTING.md para obtener información sobre todo, desde pruebas hasta estándares de codificación.

Hoja de Ruta

  • No hay nada planeado en este momento.

Licencia y Autores

Copyright (c) 2016 Basho Technologies, Inc. Licenciado bajo la Licencia Apache, Versión 2.0 (la "Licencia"). Para más detalles, consulta Licencia.

Acerca del proyecto

Installs and configures Riak KV and TS, a distributed, highly available NoSQL and TimeSeries database.

Instalar
ansible-galaxy install basho-labs.riak-kv
Licencia
other
Descargas
500
Propietario
The part of Basho Technologies that is 100% community contribution. Share code freely and regularly.