1it.riak
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 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
- 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, voir Licence.
Installs and configures Riak KV and TS, a distributed, highly available NoSQL and TimeSeries database.
ansible-galaxy install 1it.riak