1it.riak

Rol de Ansible para Riak KV & TS

Estado de Construcción Ansible Galaxy

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

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

Instalación

Dependencias

  • Ansible 2.1+

Instalación desde Ansible Galaxy

$ ansible-galaxy install 1it.riak

Luego, referencia el rol en tus playbooks u otros roles usando la clave 1it.riak.

Instalación Manual

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

Por ejemplo, si usas la ubicación predeterminada para los roles, el directorio de roles sería un hermano de tu archivo playbook.yml, roles/. Si clonas este repositorio en tu directorio de roles, podrás 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 valores predeterminados. Para anular cualquiera de las variables predeterminadas, solo tienes que configurarlas en la sección vars: de tu archivo playbook.yml o crear tu propio rol que defina este rol como una dependencia, usando los mismos nombres de variable 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 anular esta plantilla con la tuya propia.

Hay dos formas diferentes de anular la plantilla predeterminada:

  • Anular 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 usando el mismo nombre exacto que la plantilla que deseas anular, en este caso riak.conf.j2.

Ejemplos

Anulando Variables Predeterminadas a través de Playbook

---
- hosts: riak
  sudo: true
  roles:
    - { role: 1it.riak }
  vars:
    riak_pb_bind_ip: 10.29.7.192
    riak_pb_port:    10017

Anulando Variables Predeterminadas a través de 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.

Instalando Riak TS

---
- hosts: riakts
  sudo: true
  roles:
    - { role: 1it.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 del 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 del 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 indicarle a tu nodo Riak que se una al clúster proporcionándole el líder del anillo. Con este rol, hay dos formas de hacerlo: a través del módulo de comando y la herramienta de línea de comandos riak-admin o a través del módulo Ansible Riak.

Módulo de Comando

---
- hosts: riak
  sudo: true
  roles:
    - { role: 1it.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: Planificar 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 la ventaja adicional de usar las funciones wait_for_ring y wait_for_handoffs.

---
- hosts: riak
  sudo: true
  roles:
    - { role: 1it.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: Planificar 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

Contribuyendo

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

Hoja de Ruta

  • 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 1it.riak
Licencia
other
Descargas
144
Propietario
Site Reliability Engineer