1it.riak
Rola Ansible dla Riak KV i TS
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.
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
- Autor: Bryan Hunt (https://github.com/binarytemple)
- Autor: Christopher Mancini (https://github.com/christophermancini)
Copyright (c) 2016 Basho Technologies, Inc. Licencjonowane na podstawie Licencji Apache, wersja 2.0 ("Licencja"). Szczegóły można znaleźć w Licencji.
Installs and configures Riak KV and TS, a distributed, highly available NoSQL and TimeSeries database.
ansible-galaxy install 1it.riak