basho-labs.riak-kv
Rol de Ansible para Riak KV & TS
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.
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
- Autor: Bryan Hunt (https://github.com/binarytemple)
- Autor: Christopher Mancini (https://github.com/christophermancini)
Copyright (c) 2016 Basho Technologies, Inc. Licenciado bajo la Licencia Apache, Versión 2.0 (la "Licencia"). Para más detalles, consulta Licencia.
Installs and configures Riak KV and TS, a distributed, highly available NoSQL and TimeSeries database.
ansible-galaxy install basho-labs.riak-kv