basho-labs.riak-kv
Rôle Ansible pour Riak KV & TS
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.
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
- Auteur : Bryan Hunt (https://github.com/binarytemple)
- Auteur : Christopher Mancini (https://github.com/christophermancini)
Copyright (c) 2016 Basho Technologies, Inc. Licencié sous la Licence Apache, Version 2.0 (la "Licence"). Pour plus de détails, consultez Licence.
Installs and configures Riak KV and TS, a distributed, highly available NoSQL and TimeSeries database.
ansible-galaxy install basho-labs.riak-kv