basho-labs.riak-kv

Ansible Rolle für Riak KV & TS

Build Status Ansible Galaxy

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.

  1. Installation
  2. Dokumentation
  3. Beispiele
  4. Mitwirken
  5. Fahrplan
  6. Lizenz und Autoren

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

Copyright (c) 2016 Basho Technologies, Inc. Lizenz unter der Apache-Lizenz, Version 2.0 (die "Lizenz"). Für weitere Details siehe Lizenz.

Über das Projekt

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

Installieren
ansible-galaxy install basho-labs.riak-kv
Lizenz
other
Downloads
500
Besitzer
The part of Basho Technologies that is 100% community contribution. Share code freely and regularly.