1it.riak

Rola Ansible dla Riak KV i TS

Status Budowy Ansible Galaxy

Ansible Riak to rola Ansible stworzona do instalacji i konfiguracji Riak KV oraz TS. Może być używana do konfiguracji pojedynczego węzła lub całego klastra, w połączeniu z hostami Ansible.

  1. Instalacja
  2. Dokumentacja
  3. Przykłady
  4. Współpraca
  5. Plan działania
  6. Licencja i autorzy

Instalacja

Wymagania

  • Ansible 2.1+

Instalacja z Ansible Galaxy

$ ansible-galaxy install 1it.riak

Następnie odwołaj się do roli w swoich playbookach lub innych rolach, używając klucza 1it.riak.

Instalacja ręczna

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

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

Dokumentacja

Wszystkie dokumenty dotyczące tej roli znajdują się w tej sekcji README.

Zmienne

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

Szablony

Obecnie w roli znajdują się cztery szablony. Najważniejszy to szablon riak.conf.j2, ponieważ konfiguruje on parametry operacyjne dla Riak KV. Jeśli masz szczególne wymagania dotyczące działania swojego pierścienia, które znacznie różnią się od konfiguracji dystrybucji, możesz nadpisać ten szablon własnym.

Są dwa różne sposoby na nadpisanie domyślnego szablonu:

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

Przykłady

Nadpisywanie domyślnych zmiennych za pomocą playbooka

---
- hosts: riak
  sudo: true
  roles:
    - { role: 1it.riak }
  vars:
    riak_pb_bind_ip: 10.29.7.192
    riak_pb_port:    10017

Nadpisywanie domyślnych zmiennych za pomocą zależności roli

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

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

    - name: Ustaw maksymalny próg dla rozmiaru obiektu
      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, aby dołączył do klastra, podając przywódcę pierścienia. Za pomocą tej roli można to zrobić na dwa sposoby: przez moduł poleceń i narzędzie cli riak-admin lub za pośrednictwem modułu Ansible Riak.

Moduł poleceń

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

    - name: Sprawdź stan pierścienia 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ę korzystania z funkcji wait_for_ring oraz wait_for_handoffs.

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

    - name: Sprawdź stan pierścienia 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

Współpraca

Utrzymujący to repozytorium to inżynierowie z Basho i z chęcią przyjmujemy Twoje wkłady do projektu! Możesz zacząć od zapoznania się z CONTRIBUTING.md w celu uzyskania informacji na temat testowania i standardów kodowania.

Plan działania

  • Nic nie jest planowane w tym czasie.

Licencja i autorzy

Copyright (c) 2016 Basho Technologies, Inc. Licencjonowane na podstawie Licencji Apache, wersja 2.0 ("Licencja"). Szczegóły można znaleźć w Licencji.

O projekcie

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

Zainstaluj
ansible-galaxy install 1it.riak
Licencja
other
Pobrania
144
Właściciel
Site Reliability Engineer