basho-labs.riak-kv
Ansible Rolle für Riak KV & TS
Ansible Riak ist eine Ansible-Rolle, die entwickelt wurde, um Riak KV & TS zu installieren und zu konfigurieren. In Kombination mit Ansible-Hosts kann sie verwendet werden, um einen einzelnen Knoten oder ein gesamtes Cluster zu konfigurieren.
Installation
Abhängigkeiten
- Ansible 2.1+
Ansible Galaxy Installation
$ ansible-galaxy install basho-labs.riak-kv
Dann verweisen Sie in Ihren Playbooks oder anderen Rollen auf die Rolle mit dem Schlüssel basho-labs.riak-kv
.
Manuelle Installation
Um diese Rolle manuell zu installieren, klonen Sie das Repository oder extrahieren Sie das Verteilungspaket in Ihr Rollenverzeichnis.
Wenn Sie beispielsweise den Standardort für Rollen verwenden, wäre das Rollenverzeichnis ein Geschwisterverzeichnis Ihrer playbook.yml-Datei, roles/
. Wenn Sie dieses Repository in Ihr Rollenverzeichnis klonen, verweisen Sie dann auf die Rolle mit dem Schlüssel ansible-riak
.
Dokumentation
Alle Dokumentationen für diese Rolle sind in diesem Abschnitt der README enthalten.
Variablen
Alle Variablen, die in dieser Rolle verwendet werden können, finden Sie in der Variablen-Standarddatei. Um eine der Standardvariablen zu überschreiben, setzen Sie sie einfach im vars:
Abschnitt Ihrer playbook.yml oder erstellen Sie Ihre eigene Rolle, die diese Rolle als Abhängigkeit definiert, und verwenden Sie die gleichen Variablennamen, die in dieser Rolle verwendet werden.
Vorlagen
Derzeit sind vier Vorlagen in der Rolle enthalten. Die wichtigste ist die Vorlage riak.conf.j2
, da sie die Betriebsparameter für Riak KV konfiguriert. Wenn Sie spezifische Betriebsanforderungen für Ihren Ring haben, die sich erheblich von der Standardkonfiguration unterscheiden, können Sie diese Vorlage mit Ihrer eigenen überschreiben.
Es gibt zwei verschiedene Möglichkeiten, die Standardvorlage zu überschreiben:
- Überschreiben Sie die riak_conf_template Variable und setzen Sie sie auf den absoluten / relativen Pfad zur Vorlage im lokalen System.
- Erstellen Sie eine neue Rolle, die diese Rolle als Abhängigkeit definiert, und speichern Sie Ihre Vorlagendatei im Vorlagenverzeichnis mit dem exakt gleichen Namen wie die Vorlage, die Sie überschreiben möchten, in diesem Fall
riak.conf.j2
.
Beispiele
Überschreiben von Standardvariablen über Playbook
---
- hosts: riak
sudo: true
roles:
- { role: ansible-riak }
vars:
riak_pb_bind_ip: 10.29.7.192
riak_pb_port: 10017
Überschreiben von Standardvariablen über Rollendependenz
Intern haben wir ein vagrant-ansible-Paket, das einige von uns verwenden, um unsere Client-Bibliotheken zu testen. Wir haben auch eine Rolle erstellt, die die Umgebung einrichtet, die für unsere Bibliothekstests erforderlich ist, und diese Rolle als Abhängigkeit definiert.
Installation von 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: Setze Warnschwellenwert für Objektgröße
lineinfile: 'dest=/etc/riak/riak.conf line="object.size.warning_threshold = 50K" regexp: "^object.size.warning_threshold ="'
- name: Setze maximalen Schwellenwert für Objektgröße
lineinfile: 'dest=/etc/riak/riak.conf line="object.size.maximum = 500K" regexp: "^object.size.maximum ="'
Aufbau eines Clusters
Um ein Cluster aufzubauen, müssen Sie Ihren Riak-Knoten anweisen, dem Cluster beizutreten, indem Sie ihm den Ringführer mitteilen. Mit dieser Rolle gibt es zwei Möglichkeiten, dies zu tun. Entweder über das Befehlsmodul und das CLI-Tool riak-admin oder über das Ansible Riak-Modul.
Befehlsmodul
---
- hosts: riak
sudo: true
roles:
- { role: ansible-riak }
vars:
ring_leader: [email protected]
tasks:
- name: Trete dem Cluster bei
command: '{{ riak_admin }} cluster join {{ ring_leader }}'
- name: Überprüfe den Riak-Ring
command: '{{ riak_admin }} cluster status'
register: riak_ring_status
- name: Plane das Cluster
command: '{{ riak_admin }} cluster plan'
when: riak_ring_status.stdout.find('joining') > 0
- name: Bestätige das Cluster
command: '{{ riak_admin }} cluster commit'
when: riak_ring_status.stdout.find('joining') > 0
Riak-Modul
Das Riak-Modul hat den zusätzlichen Vorteil, die Funktionalität wait_for_ring
& wait_for_handoffs
zu nutzen.
---
- hosts: riak
sudo: true
roles:
- { role: ansible-riak }
vars:
ring_leader: [email protected]
tasks:
- name: Trete dem Cluster bei
riak: command=join target_node={{ ring_leader }}
- name: Überprüfe den Riak-Ring
command: 'riak-admin cluster status'
register: riak_ring_status
- name: Plane das Cluster
riak: command=plan wait_for_ring=300
when: riak_ring_status.stdout.find('joining') > 0
- name: Bestätige das Cluster
riak: command=commit wait_for_handoffs=300
when: riak_ring_status.stdout.find('joining') > 0
Mitwirken
Die Maintainer dieses Repositories sind Ingenieure bei Basho und wir begrüßen Ihren Beitrag zum Projekt! Sie können damit beginnen, CONTRIBUTING.md zu überprüfen für Informationen zu Themen wie Tests und Codestandards.
Fahrplan
- Zurzeit sind keine Pläne vorhanden.
Lizenz und Autoren
- Autor: Bryan Hunt (https://github.com/binarytemple)
- Autor: Christopher Mancini (https://github.com/christophermancini)
Copyright (c) 2016 Basho Technologies, Inc. Lizenz unter der Apache-Lizenz, Version 2.0 (die "Lizenz"). Für weitere Details siehe Lizenz.
Installs and configures Riak KV and TS, a distributed, highly available NoSQL and TimeSeries database.
ansible-galaxy install basho-labs.riak-kv