basho-labs.riak-kv

Rola Ansible dla Riak KV & TS

Ansible Riak to rola Ansible zaprojektowana do instalacji i konfiguracji Riak KV & TS. W połączeniu z hostami Ansible, można jej używać do konfiguracji pojedynczego węzła lub całego klastra.

  1. Instalacja
  2. Dokumentacja
  3. Przykłady
  4. Wkład
  5. Plan działania
  6. Licencja i autorzy

Instalacja

Zależności

  • Ansible 2.1+

Instalacja z Ansible Galaxy

$ ansible-galaxy install basho-labs.riak-kv

Następnie odwołaj się do roli w swoich playbookach lub innych rolach przy użyciu klucza basho-labs.riak-kv.

Instalacja ręczna

Aby ręcznie zainstalować tę rolę, sklonuj repozytorium lub wyodrębnij pakiet dystrybucyjny do swojego katalogu ról.

Na przykład, jeśli używasz domyślnej lokalizacji dla ról, katalog ról byłby sąsiadem pliku playbook.yml, roles/. Jeśli sklonujesz to repozytorium do katalogu ról, będziesz mógł odwołać się do roli przy użyciu klucza ansible-riak.

Dokumentacja

Wszystkie dokumenty dotyczące tej roli są zawarte w tej sekcji pliku README.

Zmienne

Wszystkie zmienne, które można użyć w tej roli, można znaleźć w pliku domyślnych zmiennych. Aby nadpisać domyślne zmienne, wystarczy ustawić je w sekcji vars: swojego pliku playbook.yml lub utworzyć własną rolę, która zdefiniuje tę rolę jako zależność, używając tych samych nazw zmiennych używanych w tej roli.

Szablony

Obecnie do roli dołączone są cztery szablony. Najważniejszym z nich jest szablon riak.conf.j2, który konfiguruje parametry operacyjne dla Riak KV. Jeśli masz konkretne wymagania operacyjne dla swojego klastra, które znacznie różnią się od domyślnej konfiguracji, możesz nadpisać ten szablon własnym.

Są dwa sposoby nadpisania domyślnego szablonu:

  • Nadpisz zmienną riak_conf_template i ustaw ją na absolutną / względną ścieżkę do szablonu na lokalnym systemie
  • Utwórz nową rolę, która zdefiniuje tę rolę jako zależność i zapisz swój plik szablonu w katalogu szablonów, używając tej samej nazwy, co szablon, który chcesz nadpisać, w tym przypadku riak.conf.j2

Przykłady

Nadpisywanie domyślnych zmiennych przez playbook

---
- hosts: riak
  sudo: true
  roles:
    - { role: ansible-riak }
  vars:
    riak_pb_bind_ip: 10.29.7.192
    riak_pb_port:    10017

Nadpisywanie domyślnych zmiennych przez zależność roli

Wewnątrz mamy pakiet vagrant-ansible, którego niektórzy z nas używają do testowania naszych bibliotek klienckich. Stworzyliśmy także rolę, która przygotowuje środowisko potrzebne do testów naszych bibliotek i deklaruje tę rolę jako zależność.

Instalacja 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: Ustaw próg ostrzegawczy dla rozmiaru obiektów
      lineinfile: 'dest=/etc/riak/riak.conf line="object.size.warning_threshold = 50K" regexp: "^object.size.warning_threshold ="'

    - name: Ustaw maksymalny próg rozmiaru obiektów
      lineinfile: 'dest=/etc/riak/riak.conf line="object.size.maximum = 500K" regexp: "^object.size.maximum ="'

Budowanie klastra

Aby zbudować klaster, musisz polecić swojemu węzłowi Riak dołączenie do klastra, podając lidera klastra. Dzięki tej roli masz dwie możliwości, aby to zrobić. Za pomocą modułu command i narzędzia cli riak-admin lub za pomocą modułu Ansible Riak.

Moduł Command

---
- hosts: riak
  sudo: true
  roles:
    - { role: ansible-riak }
  vars:
    ring_leader: [email protected]
  tasks:
    - name: Dołącz do klastra
      command: '{{ riak_admin }} cluster join {{ ring_leader }}'

    - name: Sprawdź status klastra Riak
      command: '{{ riak_admin }} cluster status'
      register: riak_ring_status

    - name: Zaplanuj klaster
      command: '{{ riak_admin }} cluster plan'
      when: riak_ring_status.stdout.find('joining') > 0

    - name: Zatwierdź klaster
      command: '{{ riak_admin }} cluster commit'
      when: riak_ring_status.stdout.find('joining') > 0

Moduł Riak

Moduł Riak ma dodatkową zaletę w postaci funkcjonalności wait_for_ring i wait_for_handoffs.

---
- hosts: riak
  sudo: true
  roles:
    - { role: ansible-riak }
  vars:
    ring_leader: [email protected]
  tasks:
    - name: Dołącz do klastra
      riak: command=join target_node={{ ring_leader }}

    - name: Sprawdź status klastra Riak
      command: 'riak-admin cluster status'
      register: riak_ring_status

    - name: Zaplanuj klaster
      riak: command=plan wait_for_ring=300
      when: riak_ring_status.stdout.find('joining') > 0

    - name: Zatwierdź klaster
      riak: command=commit wait_for_handoffs=300
      when: riak_ring_status.stdout.find('joining') > 0

Wkład

Utrzymujący to repozytorium to inżynierowie z Basho i witamy każdy wkład w projekt! Możesz zacząć od zapoznania się z CONTRIBUTING.md, aby uzyskać informacje o wszystkim, od testowania po standardy kodowania.

Plan działania

  • Na ten moment nic nie jest planowane.

Licencja i autorzy

Copyright (c) 2016 Basho Technologies, Inc. Licencjonowane na podstawie Licencji Apache, Wersja 2.0 („Licencja”). Aby uzyskać więcej szczegółów, zobacz Licencja.

O projekcie

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

Zainstaluj
ansible-galaxy install basho-labs.riak-kv
Licencja
other
Pobrania
500
Właściciel
The part of Basho Technologies that is 100% community contribution. Share code freely and regularly.