basho-labs.riak-kv

Rôle Ansible pour Riak KV & TS

Statut de construction Ansible Galaxy

Ansible Riak est un rôle Ansible conçu pour installer et configurer Riak KV & TS. En combinaison avec des hôtes Ansible, il peut être utilisé pour configurer un seul nœud ou un cluster entier.

  1. Installation
  2. Documentation
  3. Exemples
  4. Contributions
  5. Feuille de route
  6. Licence et auteurs

Installation

Dépendances

  • Ansible 2.1+

Installation via Ansible Galaxy

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

Ensuite, faites référence au rôle dans vos playbooks ou autres rôles en utilisant la clé basho-labs.riak-kv.

Installation Manuelle

Pour installer ce rôle manuellement, clonez le dépôt ou extrayez le paquet de distribution dans votre répertoire de rôles.

Par exemple, si vous utilisez l'emplacement par défaut pour les rôles, le répertoire des rôles serait un voisin de votre fichier playbook.yml, roles/. Si vous clonez ce dépôt dans votre répertoire de rôles, vous ferez ensuite référence au rôle avec la clé ansible-riak.

Documentation

Toute la documentation pour ce rôle est incluse dans cette section du README.

Variables

Toutes les variables pouvant être utilisées dans ce rôle se trouvent dans le fichier des valeurs par défaut. Pour remplacer l'une des variables par défaut, il vous suffit de les définir dans la section vars: de votre playbook.yml ou de créer votre propre rôle qui définit ce rôle comme dépendance, en utilisant les mêmes noms de variables que dans ce rôle.

Modèles

Il y a actuellement quatre modèles inclus avec le rôle. Le plus important est le modèle riak.conf.j2, car il configure les paramètres d'opération pour Riak KV. Si vous avez des exigences opérationnelles spécifiques pour votre anneau qui diffèrent considérablement de la configuration de distribution, vous pouvez remplacer ce modèle par le vôtre.

Il existe deux façons différentes de remplacer le modèle par défaut :

  • Remplacer la variable riak_conf_template et la définir à l'emplacement absolu / relatif vers le modèle sur le système local
  • Créer un nouveau rôle qui définit ce rôle comme dépendance et enregistrer votre fichier modèle dans le répertoire des modèles en utilisant le même nom exact que le modèle que vous souhaitez remplacer, dans ce cas riak.conf.j2

Exemples

Remplacer des Variables par Défaut via le Playbook

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

Remplacer des Variables par Défaut via la Dépendance de Rôle

En interne, nous avons un package vagrant-ansible que certains d'entre nous utilisent pour tester nos bibliothèques clients. Nous avons également créé un rôle qui configure l'environnement nécessaire pour nos tests de bibliothèque et déclare ce rôle comme dépendance.

Installer 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: Définir le seuil d'avertissement de taille d'objet
      lineinfile: 'dest=/etc/riak/riak.conf line="object.size.warning_threshold = 50K" regexp: "^object.size.warning_threshold ="'

    - name: Définir le seuil maximal de taille d'objet
      lineinfile: 'dest=/etc/riak/riak.conf line="object.size.maximum = 500K" regexp: "^object.size.maximum ="'

Construire un Cluster

Pour construire un cluster, vous devez ordonner à votre nœud Riak de rejoindre le cluster en lui fournissant le leader de l'anneau. Avec ce rôle, il y a deux façons de faire cela: via le module de commande et l'outil cli riak-admin ou via le module Ansible Riak.

Module de Commande

---
- hosts: riak
  sudo: true
  roles:
    - { role: ansible-riak }
  vars:
    ring_leader: [email protected]
  tasks:
    - name: Rejoindre le cluster
      command: '{{ riak_admin }} cluster join {{ ring_leader }}'

    - name: Vérifier l'anneau Riak
      command: '{{ riak_admin }} cluster status'
      register: riak_ring_status

    - name: Planifier le cluster
      command: '{{ riak_admin }} cluster plan'
      when: riak_ring_status.stdout.find('joining') > 0

    - name: Valider le cluster
      command: '{{ riak_admin }} cluster commit'
      when: riak_ring_status.stdout.find('joining') > 0

Module Riak

Le module Riak a l'avantage supplémentaire d'utiliser les fonctionnalités wait_for_ring et wait_for_handoffs.

---
- hosts: riak
  sudo: true
  roles:
    - { role: ansible-riak }
  vars:
    ring_leader: [email protected]
  tasks:
    - name: Rejoindre le cluster
      riak: command=join target_node={{ ring_leader }}

    - name: Vérifier l'anneau Riak
      command: 'riak-admin cluster status'
      register: riak_ring_status

    - name: Planifier le cluster
      riak: command=plan wait_for_ring=300
      when: riak_ring_status.stdout.find('joining') > 0

    - name: Valider le cluster
      riak: command=commit wait_for_handoffs=300
      when: riak_ring_status.stdout.find('joining') > 0

Contributions

Les responsables de ce dépôt sont des ingénieurs de Basho et nous accueillons vos contributions au projet ! Vous pouvez commencer par consulter CONTRIBUTING.md pour des informations sur tout, des tests aux normes de codage.

Feuille de route

  • Rien de prévu pour le moment.

Licence et Auteurs

Copyright (c) 2016 Basho Technologies, Inc. Licencié sous la Licence Apache, Version 2.0 (la "Licence"). Pour plus de détails, consultez Licence.

À propos du projet

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

Installer
ansible-galaxy install basho-labs.riak-kv
Licence
other
Téléchargements
500
Propriétaire
The part of Basho Technologies that is 100% community contribution. Share code freely and regularly.