1it.riak

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 Ansible Galaxy

$ ansible-galaxy install 1it.riak

Ensuite, référencez le rôle dans vos playbooks ou autres rôles en utilisant la clé 1it.riak.

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 frère de votre fichier playbook.yml, roles/. Si vous clonez ce dépôt dans votre répertoire de rôles, vous référencerez alors le 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 qui peuvent être utilisées dans ce rôle se trouvent dans le fichier des variables par défaut. Pour remplacer les variables par défaut, il 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 de fonctionnement de 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 de remplacer le modèle par défaut :

  • Remplacez la variable riak_conf_template et définissez-la sur le chemin absolu / relatif vers le modèle sur le système local.
  • Créez un nouveau rôle qui définit ce rôle comme dépendance et sauvegardez 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

Remplacement des Variables par Défaut via Playbook

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

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

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

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

Construction d'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 existe deux façons de le faire. Par 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: 1it.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: Confirmer 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: 1it.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: Confirmer 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 vous accueillons pour contribuer 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, voir Licence.

À propos du projet

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

Installer
ansible-galaxy install 1it.riak
Licence
other
Téléchargements
144
Propriétaire
Site Reliability Engineer